Eventual Consistency¶
Core Idea¶
Distributed replicas of a shared state may temporarily diverge under uncoordinated local writes, with a deterministic merge guaranteeing they converge once updates stop — trading strong consistency for availability across a bounded staleness window.
How would you explain it like I'm…
Copies That Catch Up
Disagree Now, Agree Later
Converge-Eventually Replicas
Broad Use¶
- Distributed databases: local writes accepted without coordination, propagated, and merged; conflict-free replicated data types formalise the merge.
- Name resolution: time-bounded propagation of name-to-address mappings as caches expire and refetch.
- Case law: a precedent propagates by citation, with cross-jurisdictional disagreement closing over years.
- Linguistic norms: spelling and usage drift locally and propagate by contact, with regional dialect windows.
- Scientific consensus: a finding propagates through citation and replication, converging as evidence accumulates.
- Organisational policy: a head-office change rolls out to branches over weeks before holding everywhere.
Clarity¶
Names which guarantees a system makes and which it does not, separating liveness from agreement and replacing the impossible demand for instantaneous agreement with the measurable question of the convergence window.
Manages Complexity¶
Collapses a sprawling design space into four choices — permitted local writes, propagation topology, merge rule, advertised staleness bound — after which behaviour under failure is largely determined.
Abstract Reasoning¶
Keeps divergence width and convergence time distinct, identifies any "agreement desirable but coordination too expensive" system as a candidate, and surfaces the cessation precondition: a stream that never quiesces never fully converges.
Knowledge Transfer¶
- CRDT design → org policy: design changes that commute ("always add, never remove") so branches merge automatically.
- Gossip/anti-entropy → diffusion modelling: convergence proofs share the epidemic-spread formalism, not a metaphor.
- Bounded staleness → policy practice: "no read older than X" becomes "no branch runs the old policy more than Y weeks after promulgation."
Example¶
An organisational policy rollout treats branches as replicas and the rollout period as the staleness window; if head office amends faster than branches adopt, the company never reaches one consistent policy — exactly a write-stream that never quiesces.
Relationships to Other Primes¶
Parents (1) — more general patterns this builds on
- Eventual Consistency presupposes Concurrency — The file: concurrency raises the reconciliation question; eventual_consistency is 'one DISCIPLINE for living with the divergence concurrency creates' — accept uncoordinated concurrent writes, diverge, reconcile by merge. Presupposes concurrency (the 0.903 nearest, the problem it solves — not a duplicate).
Path to root: Eventual Consistency → Concurrency
Not to Be Confused With¶
- Eventual Consistency is not Concurrency because it is one discipline for living with the divergence concurrency creates, whereas concurrency is the bare fact of overlapping independent activities.
- Eventual Consistency is not a strong Consistency Model because it serves immediately and reconciles afterward, whereas strong consistency refuses service until coordination succeeds.
- Eventual Consistency is not Coordination because it secures agreement after action by merging, whereas coordination front-loads agreement before action by aligning parties.