CAP theorem

It it impossible in a distributed data store to guarantee more than two out of the following three guarantees:

  1. Consistency aka every reader receives the most recent write or an error.
  2. Availability aka every reader receives a response without the guarantee that it contains the most recent write.
  3. Partition tolerance aka a system continues to operate despite an arbitrary number of messages being dropped (or delayed) by the network between nodes.

When a network partition failure happens should we decide to:

  • Cancel the operation and thus decrease the availability but ensure consistency.
  • Proceed with the operation and thus provide availability but risk inconsistency.

Note to myself: No distributed system is safe from network failures.
Be prepared for them 🛡️.



Igor Springer

I build web apps. From time to time I put my thoughts on paper. I hope that some of them will be valuable for you. To teach is to learn twice.