[jdev] Google Wave being phased out

Tom Pusateri pusateri at bangj.com
Wed Aug 4 22:54:16 CDT 2010

I studied Google Wave for a few hours to try and figure out how it compared to SXE (XEP-0284). It may be a moot point now but here is a quick summary:

Wave has a distinct server to server (s2s) protocol using XMPP and a client to server (c2s) protocol using JSON over Web Sockets.
SXE uses XMPP end to end. A host is used to coordinate changes between participants.

Wave requires TLS for each connection. Each operation is signed by the originator. Verification is done by wave providers.
SXE uses the security of the XMPP connection it is running over. It may or may not use TLS.

Both use SRV records to locate servers
SXE uses presence or TXT records to locate sessions

local wave server caches operations for replay
host or MUC server may cache operations for SXE but not well defined

Both use replicated local storage for edits. Changes are made immediately locally and propagated to remote servers
merge conflicts need to be handled manually in both
Data Model is XML in both cases but Wave adds annotations to XML.
        Wave uses custom Operational Transformation (OT) with ACK plus recovery
                concurrency control (consistency maintenance)
                        intention preservation
                        causality preservation
                                operations in the cause-effect order
                combines operations to reduce number of possible transformations using zip functions
                composition tree allows jumping through history in log (n) order
        SXE uses Post OT schemes
                unique symbol identifiers and timestamps (like Eclipse)
                reconstructing timing of nodes in SVG document required for playback
                time synchronization between participants required
		simpler to implement but no correctness proof exists


More information about the JDev mailing list