CRDT basics for collaboration

Slap yourself if

You think CRDTs are just fancy merge functions or a drop-in replacement for locks.

Why this exists

CRDTs exist because collaborative systems can’t rely on global ordering, constant connectivity, or a single authority. When replicas diverge, coordination-free convergence beats perfect consistency that never arrives.

Mental model

A CRDT encodes mergeability into the data itself. If every update is mathematically safe to merge, coordination becomes optional instead of mandatory.

  • Multiple replicas apply updates independently.
  • Updates propagate asynchronously and out of order.
  • Each replica merges received updates without coordination.
  • All replicas converge to the same state given the same set of updates.
  • Assuming CRDTs preserve user intent automatically.
  • Choosing the wrong CRDT for the data semantics.
  • Ignoring metadata growth and its long-term cost.
  • Treating convergence as equivalent to correctness.

CRDTs are data structures designed so that concurrent, unordered updates can be merged deterministically, allowing replicas in collaborative systems to converge without coordination.

  • Last-write-wins used inside a CRDT without justification
  • No clear mapping between user actions and operations
  • Assuming CRDTs eliminate conflicts conceptually
  • Ignoring storage and bandwidth overhead

Deep dive

Requires Pro

Premium deep dives include more internals, more scars.

How CRDT convergence is actually guaranteed

When convergence hides semantic bugs

What CRDTs cost you

Debugging collaboration bugs with CRDTs

When CRDTs are the wrong tool