Pick two from the following:

  • C onsistency - Every read receives the most recent write1
  • A vailability - Every request receives a response
  • P artition Tolerance - The system can function despite partitioning based on network failures

However, the you cannot really elect to have or not have partitions, your system will experience them or it won’t. So then, it becomes a trade off between Consistency and Availability2

Pairings:

CP - Availability is compromised because writes won’t happen unless the partitioned node responds. This is a good choice if you need atomic rads and writes. AP - Consistency is compromised because nodes return the most recent version of the data that they have. AP is a good choice if eventual consistency is allowable and the system needs to function despite errors

1. Sathupadi, K. A plain English introduction to CAP theorem. (2012).

2. Robinson, H. The CAP FAQ. (2013).