Quorums
Use overlapping read and write sets to reason about replica authority, freshness, and failure tolerance.
2–5 minute refresher
R + W > NN = 5 · R = 3 · W = 3
12345
Node 3 is the guaranteed overlap.
Choose enough replicas that every read intersects the latest successful write
30second
refresher
refresher
With N replicas, a write waits for W acknowledgements and a read consults R replicas. When
R + W > N, every read set overlaps every successful write set. When W > N/2, two successful write quorums must overlap.What problem do quorums solve?
Waiting for every replica makes one slow node block progress. Waiting for one replica risks stale or conflicting state. Quorums provide a tunable middle ground between coordination cost and fault tolerance.
Explore quorum choices
Interactive lab
Quorum calculator
Adjust the replica, read, and write counts. The overlap and availability implications update instantly.
3 + 3 > 5Read and write quorums overlap.
Decision guide
Key trade-offs
| Choice | What you gain | What it costs |
|---|---|---|
| Large W | More durable and fresher acknowledged writes | Higher write latency and lower write availability |
| Large R | Better chance of observing the newest version | Higher read latency and fanout |
| Sloppy quorum | Continued writes during replica loss | The sets may not overlap; hinted handoff is required |
What happens if?
Two replicas are unreachable in N=5, W=3
A write can still succeed with the remaining three. If a third replica is lost, the system must reject the write or weaken its policy.
What happens if?
A read sees three different versions
Version metadata—term/index, timestamp, or vector clock—selects or reconciles the result. Read repair can then update stale replicas outside the user’s critical path.
Senior interview modeWhy does R + W > N not necessarily guarantee linearizability?Show answer
The rule guarantees set overlap, not that writes are totally ordered or that the read chooses a committed latest value. Sloppy quorums, clock-based conflict resolution, and concurrent writes can violate linearizable behavior.