The full picture
🎬 Quorums: why R + W > N is the whole guarantee
1 / 5N = 3 replicas hold the key, currently at v1. A write waits for W acknowledgements; a read collects R responses. Nobody coordinates — the client does the arithmetic.
- The intuition in one line: R + W > N is the pigeonhole principle — you cannot pick R nodes and W nodes from N without repeating one, and that repeated node carries the newest version.
- Latency tuning is the real reason to change R and W: read-heavy workloads use W=N/R=1 to make reads single-hop; write-heavy use W=1/R=N. And because the client waits for the slowest of W, higher quorums expose you to tail latency — this is exactly why Dynamo-style systems send requests to more replicas than they wait for.
- Sloppy quorums + hinted handoff trade the guarantee for availability: if the home replicas are unreachable, W acks are taken from any healthy nodes, which then hand the data off later. Writes keep succeeding during a partition, but R + W > N no longer implies overlap with the home replicas, so reads can miss the write. Naming this as 'availability bought with a weakened guarantee' is the precise framing.
- Partial failure has no rollback: a write that reaches 1 of 3 replicas but needed W=2 returns an error to the client — and the value stays on that one replica. A later read may return it. So 'my write failed' does not mean 'my write didn't happen', which is exactly why idempotency and version checks matter more than error handling here.
- Quorums don't give you linearizability on their own — they give overlap. Real linearizable operations in these systems need consensus per key (Cassandra's lightweight transactions, DynamoDB's conditional writes). Knowing that quorum ≠ linearizable is the distinction interviewers probe for at staff level.
| N / W / R | Reads | Writes | Use when |
|---|---|---|---|
| 3 / 2 / 2 | overlap ✅ | tolerates 1 node down | the sane default |
| 3 / 3 / 1 | fastest | fails if any node is down | read-dominated, tolerant of write outages |
| 3 / 1 / 3 | slowest | fastest, most available | write-dominated ingest |
| 3 / 1 / 1 | no overlap ❌ | fastest | caches, metrics, genuinely disposable data |
| 5 / 3 / 3 | overlap ✅ | tolerates 2 down | higher durability, higher tail latency |