Hi,
I like the topic of this thread so just wanted to add my 2 cents. As you know when I was with Errai we have implemented operation transforms and data sync and we have had a lot of discussions around these.
OT/EC is really nice, but it's a totally different use case then offline sync. The idea is that you only send your operations something like Insert[0, "x"] meaning on position 0 insert a x as you can see this will only work well if you have a very current version of the document that you are editing.
The sync from Errai is based on JPA and does merging based upon fields in the Entity on the server. By doing this the chance of conflicts is smaller but still there can be conflicts and those must be handled by a user. So we need to build a way to sent the different states back to the user.
We could also create something that does a peer to peer sync (eliminating the need for a central server) couchDB has a protocol that does that I think. Maybe we should think of use cases that we want to support like in Summer's thread and maybe we need more then one solution.
Cheers,
Erik Jan