Eventual Consistency: Why Can Temporary Disagreement Still Be Correct?

Eventual Consistency: Why Can Temporary Disagreement Still Be Correct?

Eventual consistency describes a distributed state in which several replicas of the same data need not receive an update at the same instant. If no further updates occur, the replicas are required to converge. So when a shared shopping list is changed on a phone and another device briefly shows the old version, the data may not be corrupted; propagation may simply be incomplete.

What is relaxed is immediate visibility of the newest value, not correctness itself. The system must still deal with update order, conflicts and failures, and it should define how long stale values may remain. Compared with strong consistency, this model can reduce synchronous waiting and preserve availability during some network failures, but users and applications must tolerate temporary disagreement. It is also not the same as caching: a cache is a way to keep a copy, whereas eventual consistency is a promise about when copies must agree. The decisive question is not whether replicas ever differ, but whether that difference is bounded and reliably converges.

https://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html


Discover more from Geoffrey Chen

Subscribe to get the latest posts sent to your email.