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.