PACELC — [Notes]

Tarun Jain
2 min readApr 30, 2022

--

· PACELC
· Examples #
· TODO

link for all System design articles

PACELC

the theorem states that:
👉 in the case of a network partition (P), the system has to choose between
availability (A) and consistency(C)
👉 but else (E) when the system is operating normally in the absence of
network partitions, the system has to choose between latency (L) and
consistency(C)

  • As a result, each branch of this theorem creates 2 sub-categories of systems.
  • The first part of the theorem defines the two categories we have already
    seen: AP and CP.
  • The second part defines two new categories: EL and EC.
  • These sub-categories are combined to form 4 categories in total: AP/EL,
    CP/EL, AP/EC, CP/EC.
  • For instance, a system from the AP/EL category will prioritise availability during a network partition and it will prioritise latency during normal operation.
  • In most cases, systems are designed with an overarching principle in mind, which is usually either performance and availability or data consistency.
  • As a result, most of the systems tend to fall into the categories AP/EL or CP/EC.
  • However, there are still systems that cannot be strictly classified in one of these categories, since they have various levers that can be used to tune the system differently when needed. Still, this theorem serves as a good indicator of the various forces at play in a distributed system.

Examples #

  • Dynamo and Cassandra are PA/EL systems: They choose availability
    over consistency when a partition occurs; otherwise, they choose lower latency.
  • BigTable and HBase are PC/EC systems: They will always choose consistency, giving up availability and lower latency.
  • MongoDB is PA/EC: In the case of a network partition, it chooses availability, but otherwise guarantees consistency.

TODO

--

--

No responses yet