Eventual consistency is a weak consistency model that ensures all replicas of a distributed system converge to identical states in the absence of further updates.
In order achieve replica convergence, a system must merge differences between multiple copies of distributed servers. This consists of two parts:
- Anti-Entropy: exchanging versions or updates of data between servers
- Reconciliation: choosing an appropriate final state when concurrent updates have occurred
Eventual consistency provides only a liveness guarantee that reads will eventually return the same value without without safety guarantees for any intermediate value before convergence.
The distributed data stores that implement evetual consistency usually achieve high availability and operate under the assumption of rare simultaneous updates, as most of the operations involve reading data. In such systems, it is often acceptable to propagate an update after some time, with the main concern of how fast updates should become visible to read-only processes. When only a small group of processes can perform updates, concurrent updates become relatively easy to solve. The distributed data stores with eventual consistency require only that updates are guaranteed to propagate to all replicas and are therefore often cheap to implement.