Quorum
The minimum number of nodes that must agree for a read or write to succeed. With N replicas, W+R > N ensures overlap between write and read sets for consistency.
What is Quorum?
In short
A quorum is the minimum number of replica nodes that must acknowledge a read or a write before a distributed system treats the operation as successful. With N copies of the data, if every write reaches at least W nodes and every read consults at least R nodes, then setting W + R greater than N guarantees that any read overlaps with the most recent write, which is how systems like Cassandra and DynamoDB stay consistent without locking every replica.
What a quorum actually is
In a system that keeps multiple copies of the same data for durability, you cannot wait for every copy to respond on every operation. Some node is always slow, restarting, or unreachable. A quorum is the agreement rule that lets you make progress anyway: you decide how many of the copies have to say yes, and you ignore the rest.
The classic setup uses three numbers. N is the number of replicas holding a piece of data. W is how many of them must acknowledge a write before you call it committed. R is how many you read from before you trust the answer. A common choice is N=3, W=2, R=2.
The key formula is W + R greater than N. When that holds, the set of nodes that confirmed the latest write and the set of nodes you read from must share at least one node, because two subsets of N nodes whose sizes add up to more than N cannot be disjoint. That shared node carries the newest value, so a correct read always sees it as long as you pick the highest version.
How it works under the hood
On a write, a coordinator node sends the new value to all N replicas in parallel but only waits for W acknowledgements. Each value is tagged with a version, usually a logical timestamp or a vector clock, so replicas and readers can tell which copy is newer. Once W replicas confirm, the write returns success even if the remaining replicas have not applied it yet.
On a read, the coordinator queries R replicas and compares their versions. If they disagree, it returns the newest one and often triggers read repair, quietly pushing the fresh value back to the stale replicas so they catch up.
Tuning W and R lets you slide along a spectrum. W=N, R=1 makes reads fast and writes strict. W=1, R=N flips it. W=2, R=2 with N=3 balances both. You can also break the overlap rule on purpose: W=1, R=1 gives very fast eventual consistency where a read might miss a recent write, which some workloads accept.
When to use it and the trade-offs
Quorums fit any system that replicates data across machines or regions and needs to survive node failures without going fully offline. With N=3 and W=R=2 you can lose one replica and still serve both reads and writes, because two surviving nodes still satisfy the quorum.
The cost is latency. Every quorum operation waits for the slowest of the W or R nodes it needs, so a single lagging replica can drag your tail latency up. Crossing data centers makes this worse because each acknowledgement now pays a network round trip of tens of milliseconds.
Two sharp edges to remember. First, a strict quorum where W + R is greater than N gives you read your writes consistency, not full linearizability on its own; concurrent writes can still produce conflicting versions that the application or a conflict resolver must reconcile. Second, to avoid two halves of a split network both forming a quorum and accepting conflicting writes, the rule W greater than N divided by 2 ensures only one majority can exist at a time.
A concrete example
Picture a user profile stored with N=3 replicas across three machines, configured W=2 and R=2. You update your display name. The coordinator sends the change to all three replicas and waits. Two confirm within 4 ms; the third is busy with garbage collection and lags. The write returns success.
A moment later you load your profile. The read hits two replicas. One of them is a node that confirmed the write, so it returns the new name with version 7; the other still has version 6. The coordinator picks version 7, shows you the new name, and repairs the stale replica in the background.
Now the third replica recovers. It was never required for the quorum, so the system never blocked on it, yet it converges to the right value through replication and read repair. That is the whole point: progress with two out of three, correctness preserved by the overlap, and no global lock anywhere.
Where it is used in production
Apache Cassandra
Lets you set the consistency level per query (ONE, QUORUM, ALL); QUORUM reads and writes use the W + R greater than N rule across the replica set.
Amazon DynamoDB
The original Dynamo paper popularized N, W, R quorums; strongly consistent reads consult a majority of replicas while eventually consistent reads hit fewer.
etcd and Apache ZooKeeper
Use majority quorums through Raft and Zab so a cluster of 5 nodes keeps working and stays consistent as long as 3 are reachable.
MongoDB
Write concern majority requires acknowledgement from a quorum of replica set members before a write is durable, and read concern majority reads only quorum-confirmed data.
Frequently asked questions
- Why does W + R greater than N guarantee consistency?
- Because the W nodes that confirmed the latest write and the R nodes you read from are both subsets of the same N replicas. If their sizes add up to more than N they cannot be completely separate, so they share at least one node, and that node holds the newest value. Picking the highest version on read then always returns the latest write.
- What is the difference between a quorum and a majority?
- A majority is one specific quorum: more than half the nodes. Quorum is the general idea of a minimum agreement set, and W or R do not each have to be a majority. They only need W + R greater than N for read consistency. A majority write quorum (W greater than half) is additionally used to prevent two split halves from both committing conflicting writes.
- Does a quorum give you strong consistency?
- A strict quorum gives read your writes consistency, meaning a read after a successful write sees that write. It does not by itself give full linearizability, because concurrent writes can create conflicting versions that need resolution. Systems get true linearizability by layering a consensus protocol like Raft or Paxos on top of majority quorums.
- What happens if a quorum cannot be reached?
- The operation fails or blocks rather than returning a possibly wrong answer. For example with N=3 and W=2, if two replicas are down you cannot get two acknowledgements, so writes are rejected until a node recovers. This is the system choosing consistency over availability for that operation.
- Why is an odd number of nodes common in quorum systems?
- With an odd cluster size you get the same fault tolerance as the next even size but waste one fewer node. Five nodes tolerate two failures and so do six, but six just adds cost and a larger majority to reach. Odd sizes also make it impossible to split into two equal halves, which avoids a tie where no side can form a majority.
Learn Quorum hands-on
This page explains the idea. The full lesson lets you step through the ring as servers join and leave, read the implementation, and check yourself with a quiz. It is one of 760+ lessons in the System Design Masterclass, from your first API call to distributed consensus. Eleven Foundation lessons are free, no signup. Lifetime access is ₹499 in India or $7.99 worldwide, one payment, no subscription.
Related lessons
Lessons that touch on Quorum as part of a larger topic.
See also
Related glossary terms you might want to look up next.
Replication
Keeping copies of the same data on multiple servers. Improves read performance and provides fault tolerance if one server goes down.
Consensus
The process of getting multiple nodes in a distributed system to agree on a single value. The foundation of distributed databases and coordination services.
Leaderless Replication
A replication approach where any node can accept reads and writes. Uses quorum reads/writes for consistency. Cassandra and DynamoDB use this model.
CAP Theorem
In a distributed system, you can only guarantee two of three: Consistency, Availability, and Partition tolerance. You must choose your trade-off.
Paxos
A family of protocols for solving consensus in unreliable networks. Famously difficult to understand but mathematically proven correct.
Raft
A consensus algorithm designed to be understandable. Uses leader election and log replication. Powers etcd (used by Kubernetes) and CockroachDB.