Practical data synchronization with CRDTs
summary
TomTom describes a production sync system (NavCloud) using state-based CRDTs with OUR-Set as an extension to allow updates (identity + monotonically increasing timestamp), implementations and examples in Scala, and use of a merge-as-join model stored in the DB. Practical additions include a delta/diff to reduce bandwidth, subscription clocks for incremental sync, and tombstone GC and monotonic timestamp rules. It runs in production and succeeds at offline local updates and eventual convergence while requiring careful pruning and deterministic merge logic.
AI-written summary · about
chapters (10)
- 0:00Start
- 1:37Server Development Stack
- 1:52Client Libraries
- 8:23Max Function
- 9:09Union Function
- 14:57LWW-Element-Set
- 20:36Considerations & Limitations
- 26:23Ordering updates from different nodes
- 36:27Convergence in case of equal timestamps
- 44:30Lazy (data) loading
related talks
50mCRDTs in Practice
29mHow to Read the Exact Time When You Have a Billion Clocks
21mCRDTs for Mortals
22mHappily Ever After: A CRDT Fairy Tale
35mData Types for Eventually Consistent Databases
41mConsistency without consensus in production systems
46mCoordination-Free Computations
41mSync is the Future of Mobile Data
