BT

Alternatives to Eventual Consistency

by Harry Brumleve on Jun 18, 2014 |

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.

 

 

 

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

Discuss

Educational Content

General Feedback
Bugs
Advertising
Editorial
InfoQ.com and all content copyright © 2006-2014 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we've ever worked with.
Privacy policy
BT