LCDS appears to be stateful session on the server. This blog talks about a solution that stores state on the client instead.
Data synchronization using state on the client only (stateless server). Apparently LCDS uses a statefull server pattern.
Basic idea:
- RPC-based CRUD calls pushed to server
- server replies OK/FAIL synchronously
- client puts the modified object into a pending state
- server also sends async message with the updated object to all peer servers
- peer servers push the same message out to their connected clients
- clients compare the received object's type+id+version to what they have and update accordingly (same as LCDS)
- original client moves object out of PENDING state
If we don't care about stale data on some clients, this can be simplified further.
LCDS appears to be stateful session on the server. This blog talks about a solution that stores state on the client instead.