#26Build a CRDT library
stub
Conflict-free merging as a math problem. Build the canonical CRDTs — counters, sets, registers, sequences — and feel why a commutative-associative-idempotent merge function buys you offline-first sync without a coordinator. The price is paid in metadata growth, and that's the load-bearing trade.

Build a CRDT library. Conflict-free merging as a math problem. Build the canonical CRDTs — counters, sets, registers, sequences — and feel why a commutative-associative-idempotent merge function buys you offline-first sync without a coordinator. The price is paid in metadata growth, and that's the load-bearing trade.

This problem is a stub. Suggested approaches haven't been authored yet — ask the staff engineer in the right panel for any stage and they'll generate one tuned to your draft.
Reading: Shapiro, Preguiça, Baquero, Zawirski — A Comprehensive Study of Convergent and Commutative Replicated Data Types (INRIA 2011) · Shapiro et al. — Conflict-Free Replicated Data Types (SSS 2011) · Almeida, Shoker, Baquero — Delta state replicated data types (JPDC 2018) · Kleppmann — A Brief History of CRDTs (his talks and blog) · Yjs internals — YATA + the Yjs document model · Automerge documentation — RGA implementation in JavaScript/Rust · Riak DT — production CRDT implementations
state-based (CvRDT) vs operation-based (CmRDT) CRDTs
the join-semilattice — commutative + associative + idempotent merge
G-Counter (grow-only) and PN-Counter (positive + negative)
G-Set, 2P-Set, OR-Set, LWW-Set — the set family and tombstones
LWW-Register vs MV-Register (last write wins vs multi-value)
RGA / Logoot / Yjs / Automerge — sequence CRDTs for collaborative text
delta-state CRDTs (sync deltas, not full states)
the metadata-growth problem and garbage collection
causal stability and how to safely prune history
where CRDTs win (notes, presence, offline-first) vs lose (financial ledgers)
No scenes authored for this problem yet.