PACELC Theorem

introduced in CS451.

This is an improved CAP Theorem.

Pacelc is a more complete description of the space of potential tradeoffs for distributed system:

  • If there is a partition (P), how does the system trade off availability and consistency (A and C); else (E), when the system is running normally in the absence of partitions, how does the system trade off latency (L) and consistency (C)?

  • A partition happens when a network is split into disconnected parts, and nodes in different parts cannot communicate with each other.
  • In this scenario, a distributed system must decide how to behave when some nodes can’t reach others. Specifically, it must choose between:
    • Consistency (C): Ensuring all responses reflect the same data, which might require waiting until the partition heals.
    • Availability (A): Ensuring that every request gets a response, even if it might serve stale or inconsistent data.

When there is no partition (i.e., nodes are fully connected and can communicate with each other normally):

  • Availability is guaranteed: Since all nodes can communicate, there’s no scenario where a request would go unanswered. All nodes can coordinate, and any request will be processed by at least one node.
  • Consistency is easier to maintain: Without partitions, all nodes can synchronize state with minimal delay, ensuring that responses are up-to-date.

Thus, in the absence of partitions, the tradeoff between availability (A) and consistency (C) doesn’t come into play.