The “CAP theorem” is often presented as something deep and hard to understand, and then discussed in confusing terms, to make sure it is hard to understand. Really, it’s almost common sense – eg, if you have a partition, you have to give up availability or consistency. Anyone familiar with, eg, drbd/split-brain/STONITH knows all about this.
I was reading a bit about it (again), and I use the sneer quotes on “theorem” because I think that the “proof” is really just adding some mathematical terms to the mix and restating it – QED. (If this is considered the proof – “Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services” .) “Conjecture” doesn’t seem right either. Maybe CAP observation?
It’s refreshing to find an update written by Eric Brewer (the originator) in 2012, “CAP Twelve Years Later: How the “Rules” Have Changed“. It’s very readable (down-to-earth), interesting, and informative. I recommend it to anyone interested in the subject who hasn’t already read it.