Principles of eventual consistency

S Burckhardt - Foundations and Trends® in Programming …, 2014 - nowpublishers.com
Foundations and Trends® in Programming Languages, 2014nowpublishers.com
In globally distributed systems, shared state is never perfect. When communication is neither
fast nor reliable, we cannot achieve strong consistency, low latency, and availability at the
same time. Unfortunately, abandoning strong consistency has wide ramifications. Eventual
consistency, though attractive from a performance viewpoint, is challenging to understand
and reason about, both for system architects and programmers. To provide robust
abstractions, we need not just systems, but also principles: we need the ability to articulate …
Abstract
In globally distributed systems, shared state is never perfect. When communication is neither fast nor reliable, we cannot achieve strong consistency, low latency, and availability at the same time. Unfortunately, abandoning strong consistency has wide ramifications. Eventual consistency, though attractive from a performance viewpoint, is challenging to understand and reason about, both for system architects and programmers. To provide robust abstractions, we need not just systems, but also principles: we need the ability to articulate what a consistency protocol is supposed to guarantee, and the ability to prove or refute such claims.
nowpublishers.com