Eventual consistency is a data consistency model. It is the weakest reasonable consistency model for replicated data. It is defined by:
- All nodes execute operations (like gets, puts) in any order. This allows for partition tolerance.
- Assuming no updates to a data item, all access to that item will eventually return the last updated value.
- If no partition, then replicas eventually converge to some state.
- If there is a partition, we make no guarantees. We’ll only know the order once we sync.
It’s used in optimistically replicated systems. It’s a weak consistency model, but provides for high availability and partition tolerance. However, it’s not always suitable.
Reads/writes are performed at a replica without synchronising with other replicas. So replicas may diverge. However, the replicas will establish/learn the total order eventually when they synchronise updates with each other later.
Result: some operations may be invalidated or rolled back.