We continue revisiting the papers that were voted essential in our recent poll (http://www.meetup.com/sc-krk/events/229737298/). This week's topic, CAP Theorem, placed at number four. CAP Theorem, formulated by Eric Brewer, describes an important trade-off that happens in distributed systems - in case of a partition, the system may either remain available or consistent, but never both. This has interesting implications on distributed system design, some of which are described in the paper we are going to discuss.
Paper: Perspectives on the CAP Theorem (https://pdfs.semanticscholar.org/0b0a/af71707a8247b35822f91a95319f1c97476c.pdf)
Lifeguards: Łukasz Jachym (http://www.meetup.com/sc-krk/member/12848124/) and Konrad Malawski (https://twitter.com/ktosopl)
Almost twelve years ago, in 2000, Eric Brewer introduced the idea that there is a fundamental trade-off between consistency, availability, and partition tolerance. This trade-off, which has become known as the CAP Theorem, has been widely discussed ever since. In this paper, we review the CAP Theorem and situate it within the broader context of distributed computing theory. We then discuss the practical implications of the CAP Theorem, and explore some general techniques for coping with the inherent trade-offs that it implies.
• Original presentation slides (https://www.cs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf) by Brewer on PODC 2000
• Brewer's Conjeture and the Feasibility of Consistent, Available, Partition-Tolerant WebServies (http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.20.1495&rep=rep1&type=pdf) - older paper by the same authors, providing a proof of CAP theorem
• CAP Twelve Years Later: How the "Rules" Have Changed (http://www.infoq.com/articles/cap-twelve-years-later-how-the-rules-have-changed) - InfoQ article by Eric Brewer, providing a better explanation of the CAP Theorem