Alternatives to Eventual Consistency

| by Harry Brumleve Follow 1 Followers on Jun 18, 2014. Estimated reading time: 1 minute |

Eventual Consistency is a hallmark of distributed systems designed by principles derived from the CAP Theorem. Eventual Consistency can not only enable systems to survive transient partition failure, but also to achieve a level of asynchronicity that can be leveraged within a business context. However, not all systems require the same rigor of partition tolerance and may actually find asynchronicity to be a limitation to their business model.

Recent arguments against Eventual Consistency have begun to emerge. In an ACM paper titled “Don’t Settle for Eventual Consistency", Wyatt Lloyd et.el. have argued that systems which require a strong degree of temporal consistency, meaning the order of operations is vital, Eventual Consistency is not a good choice. In fact, the very concepts that define Eventual Consistency could cause a catastrophic business failure. For example, if messages containing ordered operations are replicated across geo-distributed nodes and their order of delivery is not ensured, a chain of events could be triggered on a remote node that does not fully embody the intent of the system nor reflect the state that other nodes may possess.

Causal Consistency, on the other hand, prescribes a distribution model that explicitly delivers each message in a context that ensures order. This focus on Consistency as opposed to Partition Tolerance seems to fly in the face of contemporary wisdom when designing a distributed system, but this shift in priorities denotes a more refined approach and thoughtful design of each system and its unique requirements.

“Faced with the choice of at most two of these properties, many systems have chosen to sacrifice strong consistency to ensure availability and partition tolerance. Other systems—for example, those that deal with money—sacrifice availability and/or partition tolerance to achieve the strong consistency that is necessary for the applications built on top of them.” – Lloyd, et el

Causal Consistency is not a replacement for Eventual Consistency. Causal Consistency is a design consideration for systems where consistency is a non-negotiable requirement. Trade-offs between Eventual and Causal consistency should not be measured in absolutes, but rather measured in degrees of risk and impact. Choosing the correct model for your system should be a matter of reflecting on your systems purpose and what form of failure is the most tolerable.




Rate this Article

Adoption Stage

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread
Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread


Login to InfoQ to interact with what matters most to you.

Recover your password...


Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.


More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.


Stay up-to-date

Set up your notifications and don't miss out on content that matters to you