InfoWok
System Design Foundations

CAP Follow-Ups: Consistency Models, Quorums and PACELC (2026)

The deeper half of the CAP lesson: the consistency models between strong and eventual, how quorums find the latest write, what a consistent system does on the minority side of a partition, PACELC for real systems, and two contrasting designs, Dynamo and Spanner.

NK
Navmeet Kaur
Published October 24, 2026
7 min read
Open in ChatGPT Open in Claude
CAP follow-ups companion lesson: a three-replica quorum and a five-node cluster split into a majority and a minority, beside the line quorums, models, PACELCSystem Design Foundations
CAP FOLLOW-UPS
On this page +

The interviewer nods at your CP answer and asks the next question. “Five nodes, a network cut leaves three on one side and two on the other. What exactly does the two-node side do with a read?” Then: “And why did you pick W=2 and R=2?”

The core lesson, CAP theorem explained, gave the choice between consistency and availability. This companion covers the mechanics behind it: the models between strong and eventual, the quorum arithmetic, the minority side, and what PACELC says about real systems.

Intermediate25 min
Before you start
  • CAP theorem explained: the three definitions, the worked example with three replicas and the CP/AP table.
Remember from the CAP lesson

With 3 replicas and one cut off, how many replicas make a quorum, and what does a CP system do on the cut-off side? Two make the quorum (floor(3 / 2) + 1), and the cut-off replica refuses requests that need it.

Key takeaways
  • Between linearizable and eventual there are useful middle models, such as read-your-writes. Pick the weakest one the feature can live with.
  • If W + R is more than N, a read set always overlaps the latest write set. That finds the newest version but does not make the system linearizable.
  • A consistent system stays correct by letting only the majority side act. The minority side times out, and an odd node count avoids a dead tie.
  • PACELC classifies how a system behaves normally too. Most of the cost of consistency is paid on ordinary days, in latency.
  • Dynamo and Spanner are two documented answers: stay writable and reconcile later, or coordinate on every write and stay correct.
After this lesson you can

Pick the weakest consistency model a feature needs, size R and W for a replica count, describe what the minority side of a partition does, place a real system on the PACELC grid, and contrast Dynamo with Spanner.

Which consistency model does a feature need?#

“Consistent or eventual” is a two-point scale. Real systems offer more points, and each stronger one costs more coordination.

ModelWhat a reader is promisedA feature that fits
LinearizableEvery read sees the latest completed write, as if there were one copyStock decrement, lock, leader election
Read-your-writesYou always see your own earlier writes; others may lagA profile edit, a just-sent message
CausalIf one event led to another, everyone sees them in that orderComment threads: a reply never appears before its question
EventualIf writes stop, all copies converge; a read now may be oldLike counts, search indexes

Linearizability is the model from the Gilbert and Lynch proof: operations look as if they ran one at a time on a single node. Eventual consistency is how the Dynamo paper puts it: “all updates reach all replicas eventually”.

Key point

Choose the weakest model that keeps the feature correct. That is a judgement, but it buys the most latency and availability. A like count on eventual consistency costs nothing. A stock decrement on it costs an oversold item.

How do quorums find the latest write?#

A system with N replicas per item sets two numbers. W is how many replicas must acknowledge a write. R is how many must answer a read. The Dynamo paper states the rule: “R + W > N yields a quorum-like system”. Cassandra’s docs say the same as W + R > RF, where RF is the replication factor.

The reason is a counting fact. If W + R is more than N, the write set and the read set cannot be disjoint.

Here is the arithmetic for N = 3.

WRW + ROverlap?Writes tolerateReads tolerate
112no2 down2 down
224yes1 down1 down
314yes0 down2 down
134yes2 down0 down

“Tolerate” means how many replicas can be down while the operation still reaches its count: N - W for writes and N - R for reads. The common Dynamo setting is (N, R, W) = (3, 2, 2), the balanced row. Cassandra exposes the same dial per request as ONE, QUORUM (a majority, n/2 + 1) or ALL.

Latency follows the count too. Per the Dynamo paper, a get or put “is dictated by the slowest of the R (or W) replicas”, so a bigger R or W means a slower tail.

Overlap is necessary but not sufficient for linearizability. Gilbert and Lynch define consistency as every operation appearing to take effect in one global order, and quorum overlap alone does not give that. Two things break it:

  • Concurrent writes. Two clients write the same item at the same time, and the replicas need a rule to pick or merge. Dynamo keeps both versions and reconciles later.
  • Sloppy quorums. When replicas are down, Dynamo writes to the first N healthy nodes instead, so the overlap guarantee no longer holds. That buys write availability.

How rare are the conflicts? In the paper’s 24-hour shopping-cart profile, 99.94% of requests saw exactly one version. That is a 2007 measurement of one Amazon workload, not a promise for your system.

What does a CP system do on the minority side?#

Take a five-node consensus cluster, one that uses a majority vote to agree on a single order of writes. A majority is 3 of 5.

The majority side of three can elect a leader and keep serving. The minority side of two cannot, so it stops accepting linearizable work. Brewer’s 2000 slides name the pattern in one line: “Make minority partitions unavailable”.

etcd documents the consequence. Its FAQ says a cluster “needs a majority of nodes, a quorum, to agree on updates”. Three members tolerate 1 failure, five tolerate 2, and adding a node to an odd-sized cluster raises the number needed for quorum.

Its API guarantees say linearized requests “must go through the Raft consensus process”. What that means in practice:

  • No quorum, no answer. Without a quorum these requests cannot finish. The docs do not list the exact client error, so expect timeouts and plan retries with limits (judgement).
  • A tie stops everything. Four nodes split 2 and 2 leaves neither side with the 3 votes it needs. This is why consensus clusters use odd sizes.
  • Failure budgets are small. Five nodes survive two failures, and a bad config push that breaks three links at once is the real risk. Spread nodes across failure zones and stage changes.

Brewer reports how this plays out at Google: no event put a Spanner quorum on the minority side of a partition, and network problems were under 8% of incidents. That is one company’s record, but it explains why a CP choice can feel like CA in practice.

How do real systems sit on the PACELC grid?#

PACELC gives each system two letters for a partition (PA or PC) and two for normal running (EL or EC). Abadi’s 2012 paper (IEEE Computer) is the usual source for sorting real systems into these four classes. The table follows the commonly reported 2012 classification, which changes with versions and settings:

System (as classified in 2012)PACELCIn words
Dynamo, Cassandra, Riak (defaults)PA/ELGive up consistency for availability, and for latency
VoltDB/H-Store, Megastore, BigTable, HBasePC/ECRefuse to give up consistency
MongoDBPA/ECConsistent in normal use; after a failover the old master sets unreplicated writes aside
PNUTSPC/ELGives up consistency for latency normally; trades availability on a partition

These labels are from 2012, so check a product’s current settings before repeating them. For DynamoDB global tables, as of 2026-10-24, the table’s mode decides. Eventual mode (MREC) replicates asynchronously, “typically within a second or less”, and resolves conflicts by last writer wins. Strong mode (MRSC) replicates synchronously to at least one other Region before a write returns, and has higher write latency. Mapping them to PA/EL and PC/EC is this lesson’s judgement, not an AWS statement.

Dynamo and Spanner: two ways to answer#

The two designs make opposite bets, and the interviewer’s follow-up is usually “when would you pick each”.

Dynamo (2007 paper)Spanner (2012 paper, 2017 note)
BetAlways accept writesAlways return correct data
Write pathQuorum of N, sloppy when nodes are downPaxos replication plus commit wait
ConflictsKeep versions, reconcile laterNone visible: external consistency
Latency costWait for the slowest of R or WCommit wait about 5 ms, Paxos about 9 ms in the paper’s one-replica test
FitsCarts, sessions, profilesLedgers, inventory, global SQL

The Spanner figures come from the OSDI paper, which keeps clock uncertainty “generally less than 10ms” using GPS and atomic clocks. They are 2012 numbers on Google’s hardware, so treat them as an illustration of the cost, not a current benchmark.

Brewer sums up the relationship to CAP: Spanner is “technically a CP system”, and the clocks are not the trick. He credits Google’s private network and operations for keeping partitions rare.

Practice: size the quorum#

Exercise · Choose R and W for five replicas10 min

A store keeps N = 5 replicas of each item. Choose R and W so that reads always see the latest write, writes keep working with one replica down, and reads are as fast as possible. Then say how many replicas can be down before reads fail.

Hint

Writes tolerate N - W down, so W is at most 4. Overlap needs W + R above 5.

One reasonable answer
text
N = 5
W = 4  (5 - 4 = 1 down is ok)
R = 2  (4 + 2 = 6 > 5, overlap)
reads tolerate 5 - 2 = 3 down
writes tolerate 1 down

W = 4 is the largest W that still tolerates one failure, and it lets R drop to 2, the smallest value that keeps W + R above N. The cost is slower writes (the slowest of four) and that three failures stop writes. For linearizable behaviour you would still need a consensus protocol, because overlap alone does not order concurrent writes.

Learning tip

Redo the N = 3 table from memory tomorrow without looking. If you can fill the four rows and say which failure each tolerates, the quorum question is solved.

In an interview
They askAnswer in one line
Why W=2, R=2 with N=3?W + R > N overlaps, and each side tolerates one failure
Does W + R > N give linearizability?No: concurrent writes and sloppy quorums break it
Minority side of a partition?No quorum, no leader, requests time out
Why odd cluster sizes?An even split leaves no majority; an extra even node adds no tolerance
PACELC for a ledger?PC/EC: pay latency for consistency every day
Dynamo or Spanner for a cart?Dynamo-style: a merged cart beats an unavailable one
Multi-region strong writes?Each write waits for another Region: choose Regions close together

Check Yourself#

Check yourself4 questions · answer, then open
1.With N = 5, W = 3 and R = 3, is a read guaranteed to overlap the latest write, and how many replicas can fail for writes?

Yes: W + R = 6, more than 5. Writes tolerate N - W = 2 replicas down.

2.Why does a five-node cluster keep serving after a 3 and 2 split, but a four-node cluster does not after a 2 and 2 split?

Quorum for 5 is 3, and one side has 3. Quorum for 4 is 3, and neither side has more than 2, so both stop.

3.A team picks the strongest consistency for every feature. What does it cost?

Latency on every write and read, because more replicas must confirm, and availability on the minority side. Features such as like counts can use eventual consistency for free.

4.What would change if the cluster spanned three Regions instead of three racks?

Round trips between replicas change from within one data centre to across Regions, so quorum writes get slower and a Region-wide cut becomes a realistic minority case. Place a majority of nodes where most users are.

In One Picture#

text
Models: linearizable > read-your-
  writes > causal > eventual
Quorum: W + R > N overlaps
Minority: no quorum, no leader
PACELC: P: A or C; Else: L or C
Dynamo: stay writable, reconcile
Spanner: coordinate, stay correct

Conclusion#

CAP names the choice. These mechanics let you act on it: pick the weakest model the feature needs, size the quorum from the failures you must tolerate, expect the minority side to stop, and remember that consistency costs latency on ordinary days as well.

Which follow-up would catch you out in a live round: the quorum arithmetic, the minority side, or the PACELC grid? Tell us in the comments.

Where to go from here

Frequently asked questions

What does W + R > N mean in a quorum system? +
N is how many replicas hold each item, W is how many must acknowledge a write, and R is how many must answer a read. If W + R is more than N, every read set shares at least one replica with the latest write set, so a read can find the newest version. It does not by itself make reads linearizable, because of concurrent writes and sloppy quorums.
What does a CP system do on the minority side of a partition? +
The minority side cannot form a quorum, so it cannot elect a leader or commit writes, and linearizable requests to it fail or time out. The majority side keeps serving. With an even split and no majority anywhere, both sides stop, which is why consensus clusters use an odd number of nodes.
Is Spanner a CA system? +
Technically no. Eric Brewer wrote in 2017 that Spanner is a CP system that chooses consistency during a partition, and that it is effectively CA because partitions are rare and its users can assume high availability. The distinction rests on observed outages, not on a different theorem.
Where do Dynamo and Cassandra sit in PACELC? +
Daniel Abadi classified the default versions of Dynamo, Cassandra and Riak as PA/EL in 2012: during a partition they give up consistency for availability, and in normal operation they give up consistency for lower latency. Users can raise R and W to buy more consistency at the cost of latency.

References

  1. Giuseppe DeCandia et al., Dynamo: Amazon's Highly Available Key-value Store (SOSP 2007)
  2. James Corbett et al., Spanner: Google's Globally-Distributed Database (OSDI 2012)
  3. Eric Brewer, Spanner, TrueTime and the CAP Theorem (Google, 2017)
  4. Daniel Abadi, Consistency Tradeoffs in Modern Distributed Database System Design (IEEE Computer, 2012)
  5. Gilbert and Lynch, Brewer's Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services (2002)
  6. Eric Brewer, Towards Robust Distributed Systems (PODC 2000 keynote slides)
  7. Apache Cassandra documentation, Dynamo (consistency levels)
  8. etcd documentation, FAQ (cluster size and quorum)
  9. etcd documentation, KV API guarantees
  10. Amazon DynamoDB documentation, How global tables work (consistency modes)
  11. Martin Kleppmann, A Critique of the CAP Theorem
Written by
Navmeet Kaur
Navmeet KaurSoftware Architecture & AI-Native Systems

Navmeet writes about software architecture for the AI era — how agentic systems are actually designed, not just demoed. Her work covers AI-native application architecture, agent orchestration and memory, context engineering, and where AI agents fit alongside (and eventually replace) traditional services and microservices. She focuses on the design decisions that survive production — state, tools, boundaries, and failure modes — turning fast-moving AI patterns into architecture developers can build on with confidence.

Get the next part the day it lands

One email per new part. No digest spam.

Comments