Hi,

last week at our Face2Face we had a discussion about sync, moving forward on the client (will be a different thread) and on the server.

For the server-side we had a few different approaches:
1) AeroGear Sync-Server: Dan and Luke worked on the sync-server ([1]) as a 'long term' solution
The project contains two server implementations:
- RestServer implementation that uses a simple approach of rejecting conflicts and delegating the responsibility to resolve conflicts to the client.
- DiffServer Based on Google's Differential Synchonrization by Neil Fraser. This server is WebSocket based.


2) Initial quick and simple solution based on JAX-RS and JPA:
- We have versioning in JPA (optimistic locking) - Use it (send 409 on server and send right data)
-- Use JAX-RS ExceptionMapper for exceptions around the optimistic locking ?
- Client library will have helper methods for managing data
- Use push to send notifications that data changed?
- JAX-RS Annotation to send notifications?


I'd like to follow up on that, to see where things stand 

Greetings,
Matthias


[1] https://github.com/danbev/aerogear-sync-server/tree/differential-synchronization
--
Matthias Wessendorf

blog: http://matthiaswessendorf.wordpress.com/
sessions: http://www.slideshare.net/mwessendorf
twitter: http://twitter.com/mwessendorf