That may be the case, but all other protocols that guarantee consistency suffer from similar subtle issues (which can be resolved through careful algorithm design). Eventual consistency, however, is never the answer, unless your question is &quot;how do I get eventual consistency?&quot; The consistency required by an application is entirely imposed by the domain, and it is that <i>requirement</i> that causes algorithmic difficulties. Using less-consistent protocols to achieve a consistent view simply pushes the problem to a different layer.<p>Also, eventual consistency is a weak requirement that, when sufficient, enables a certain level of <i>fault tolerance</i> and low latency not achievable with other consistency levels (see [1]), although other consistency levels may offer good-enough fault-tolerance and latency (rivaling EC in many cases). EC is not in general the solution to the problem of &quot;how do I best distribute my data?&quot;<p>[1]: <a href="http:&#x2F;&#x2F;www.bailis.org&#x2F;blog&#x2F;when-does-consistency-require-coordination&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.bailis.org&#x2F;blog&#x2F;when-does-consistency-require-coo...</a>