Spectrum of Consistency Models
Understand the range of consistency models, from eventual consistency to strict linearizability, and how they apply to distributed System Design. Evaluate how each model affects correctness guarantees, latency, and availability. Choose consistency guarantees based on application requirements.
What is consistency?
In distributed systems, consistency has multiple definitions. It can refer to all replicas sharing the same view of data, or read requests returning the most recent write. Consistency models provide abstractions to reason about data correctness during concurrent reads, writes, and mutations.
When integrating storage systems such as S3 or Cassandra, engineers need to understand the consistency guarantees those systems provide. Consistency models fall along a spectrum with two extremes:
Strongest consistency
Weakest consistency
Various consistency models lie between these two ends, as shown in the illustration below:
There is a distinction between consistency in