The PACELC Theorem: Consistency, Availability, and Latency in Distributed Systems

Formulated by computer scientist Daniel Abadi in 2012, the PACELC Theorem is an essential extension of Eric Brewer's famous CAP theorem. While CAP states that a distributed system must choose between Consistency (C) and Availability (A) during a network Partition (P), CAP completely ignores system behavior during normal, non-partitioned operation (which accounts for >99.9\% of production uptime).

PACELC resolves this limitation by formalizing that Else (E) under normal operation, a distributed system must trade off Latency (L) against Consistency (C).


1. Quick-Reference: The PACELC Formula & Matrix

ext{If } \mathbf{P} ext{ (Partition): } [\mathbf{A} ext{ or } \mathbf{C}] \quad \mathbf{E} ext{ (Else): } [\mathbf{L} ext{ or } \mathbf{C}]
+-----------------------------------------------------------------------------------------+
|                               PACELC DATABASE CLASSIFICATION                            |
+-----------------------------------------------------------------------------------------+
| Classification         | Partition Behavior (P/A or P/C)   | Normal Behavior (E/L or E/C)| Database Examples   |
+------------------------+-----------------------------------+-----------------------------+---------------------+
| PC/EC                  | Prefers Consistency               | Prefers Consistency (High L)| Google Spanner, Bigtable|
| PA/EL                  | Prefers Availability              | Prefers Low Latency         | Apache Cassandra, DynamoDB|
| PC/EL                  | Prefers Consistency               | Prefers Low Latency         | MongoDB, PostgreSQL Primary|
| PA/EC                  | Prefers Availability              | Prefers Consistency         | Rare / Theoretical  |
+-----------------------------------------------------------------------------------------+

2. Architectural Implications of the "Else" (Latency vs. Consistency)

Under normal non-partitioned operations, synchronizing data across replicas requires network round-trips. If an application chooses Consistency (EC), writes must wait for cross-datacenter quorum acknowledgments, increasing write latency from 2\, ext{ms} to 50 - 150\, ext{ms}. If an application chooses Latency (EL), it commits locally and replicates asynchronously, risking stale reads.