When concurrent writes diverge, you need a deterministic merge.
Conflict Resolution: when concurrent writes diverge, you need a deterministic merge
choose the failure mode you can explain
CRDTs add metadata overhead.
In multi-leader and leaderless systems, concurrent writes can produce conflicting values. Strategies range from last-writer-wins (simple, lossy) to vector clocks (precise, complex) to CRDTs (commutative data structures that merge automatically).
LWW: pick the highest timestamp; loses one update silently. Acceptable for cosmetic state.
Vector clocks: detect concurrent updates and let app merge; correct, more code.
CRDTs: counters, sets, sequences with built-in commutative merge — collaborative editing leans on these.
Shopping cart edited offline on two devices.