1.PACELC extends CAP to normal operation
CAP theorem only describes what a distributed system must give up during a network partition: availability or consistency. PACELC — coined by Daniel Abadi in 2010 and formalized in a 2012 paper — points out that CAP leaves the far more common case unaddressed: when there is no partition at all, a replicated system still has to choose between responding quickly (Latency) and making sure every replica agrees before responding (Consistency). The name spells out the full rule: if there is a Partition, choose Availability or Consistency; Else (normal operation), choose Latency or Consistency. A system's partition-time and normal-time choices don't have to match, and in practice a design is usually described by both letters at once, e.g. "PA/EL" or "PC/EC".
Key features
- CAP's trade-off (Availability vs Consistency) only applies while a network Partition is actually happening.
- PACELC adds the "Else" branch: even with zero partitions, a system still trades Latency against Consistency on every request.
- The two branches are independent — a system's partition-time choice and its normal-time choice do not have to match.
- Systems are commonly labeled with both branches at once: PA/EL (available + low-latency, weaker consistency) or PC/EC (consistent in both cases, at the cost of availability or latency).
- Daniel Abadi proposed PACELC in a 2010 blog post and formalized it in a 2012 paper; the reasoning was later given a formal proof by Wojciech Golab in 2018.
CAP vs PACELC — what each one actually describes
- A replicated request
- leads to Partition? (check)
- Partition? — CAP's question
- leads to A or C (yes)
- leads to L or C (else)
- A or C — availability vs consistency
- L or C — latency vs consistency
Command
PACELC:
if Partition:
choose Availability or Consistency (this part is CAP)
else (no partition, normal operation):
choose Latency or Consistency (this part is new)
Common labels combine both branches, e.g.:
PA/EL — available under partition, low-latency normally
PC/EC — consistent under partition, consistent normallyCAP only speaks during a partition (A vs C). PACELC adds the "Else": even with zero partitions, every replicated system trades Latency against Consistency on every single request — the two choices (partition-time and normal-time) are independent.