CRDTs — Notes
When you actually need them
- Offline-first apps that sync later.
- Multi-leader / multi-region writes without a coordinator.
- Collaborative editors (Docs, Figma, Notion, whiteboards).
- Mobile sync (CouchDB / Couchbase Lite).
- Edge clouds (Cloudflare Durable Objects, Cloudflare D1 alt).
- OT transforms incoming ops against local concurrent ops; requires server with global order (Google Docs original).
- CRDTs decentralize but at higher memory / metadata cost.
- Modern collab tools (Yjs, Automerge) use CRDTs; Google Docs / Quill moved partially.
Practical concerns
- Garbage collection: tombstones and old version metadata must be GC'd once all replicas have observed them — needs causal stability tracking.
- Bandwidth: state-based diffing is hard; delta-CRDTs ship only deltas.
- Permissions / ACL: CRDTs don't model authorization; layer on top.
Where they show up in this repo
- Google Docs, Figma, Notion, Online Whiteboard, Collab editor.
- Distributed cache (counters), shopping cart (Dynamo).
- Multi-region key-value stores (Riak, Redis Enterprise).
Refs
- Shapiro, Preguiça et al.: "Conflict-free Replicated Data Types" (SSS '11).
- Almeida et al.: "Delta-CRDTs."
- Yjs / Automerge papers and docs.
- Riak DT docs; Akka Distributed Data; Cassandra LWW limits.