PACELC
Also known as: PACELC theorem
PACELC extends CAP: if there is a Partition, choose Availability or Consistency; Else — when the network is healthy — choose Latency or Consistency. It captures the trade-off that dominates day to day, since partitions are rare but the cost of a consistent read is paid on every request.
Last reviewed · Part of the Architecture Glossary
In practice
PACELC classifies a system with two letters:
| System | Classification | Reading |
|---|---|---|
| Cassandra (default) | PA/EL | Available under partition, low latency otherwise |
| DynamoDB (eventual reads) | PA/EL | Same posture |
| Spanner | PC/EC | Consistent always, and you pay TrueTime commit-wait for it |
| MongoDB (majority writes) | PC/EC | Consistency first on both paths |
| PostgreSQL + async replica | PC/EL | Primary is consistent; replica reads trade freshness for speed |
The "else" branch is the one that shows up in a latency budget. A quorum read across three availability zones costs an extra 1–2 ms; across three regions, 60–150 ms. That is not a partition scenario — that is Tuesday.
When it matters
Multi-region architecture, choosing read consistency levels per endpoint, and any design review where "just make it strongly consistent" is proposed without anyone pricing the round trip.
Common mistake
Setting one global consistency level. The right answer is usually per-operation: consistent reads on the balance check, eventual reads on the activity feed. PACELC's value is that it makes that a deliberate per-endpoint decision instead of a database-wide default nobody revisits.
See also
- CAP TheoremThe CAP theorem states that when a network partition occurs, a distributed system must choose between consistency (every read sees the latest write) and availability (every request gets a non-error response).
- LinearizabilityLinearizability is the strongest single-object consistency model: every operation appears to take effect instantaneously at some point between its invocation and its response, and once a write is visible to any client it is visible to all.
- Eventual ConsistencyEventual consistency guarantees only that if writes stop, all replicas eventually converge to the same value.
- Tail LatencyTail latency is the response time of the slowest requests — typically p99 and beyond.