Common CRDTs
G-Counter (grow-only): vector of per-node counters; value = sum
merge(a, b) = [max(a[i], b[i]) for each i]
PN-Counter: pair of G-Counters (P increments, N decrements); value = P - N
LWW-Register (last-write-wins): each write carries a timestamp; merge picks the higher timestamp — simple but lossy
OR-Set (observed-remove set): add operations tag elements with unique IDs; remove only removes IDs observed at removal time — concurrent add wins
RGA (replicated growable array): CRDT sequence for collaborative text editing (used by ShareDB, Automerge)