CAP theorem

The CAP theorem was originally stated by Brewer (2000)(2000), introduced as a trade-off between (C)(C) consistency, (A)(A) availability, and (P)(P) partition tolerance.

CAP properties of distributed shared-data systems

There are three desirable properties when designing distributed shared-data systems:

  • (C)(C) Consistency
  • (A)(A) Availability
  • (P)(P) Partition tolerance

Consistency

All nodes in a distributed network have a single actual replica of data, meaning “all nodes in the system agree on the current state of the system.”

Availability

“The system is operational and instantly processing incoming requests”.

This property guarantees high availability of data, i.e., every request receives a response.

Partition tolerance

“Partition tolerance is the ability of distributed systems to continue operating correctly even in the presence of a network partition.”

Network partitions occur when a network splits into several parts that cannot communicate with each other. Hence, the partition tolerance also allows the system to continue to operate correctly if a group of nodes fails, despite arbitrary message loss or failure of a part of the system (Roger Wattenhofer (2017)Roger Wattenhofer. Distributed systems. https://disco.ethz.ch/courses/distsys/, Accessed: 2017-01-02.).

Get hands-on with 1200+ tech skills courses.