# Eventual Consistency and Durability

DevFeed: [Eventual Consistency and Durability](<https://devfeed.tech/articles/eventual-consistency-and-durability-21691.md>)

Original publisher: [Read original article](<http://blog.thislongrun.com/2015/05/definition-eventual-consistency-durability.html>)

Author: Nicolas Liochon (noreply@blogger.com)

Published: 2015-05-12T15:51:00Z

Content type: article

Language: en

Sources: [Nicolas Liochon](<https://devfeed.tech/sources/nicolas-liochon.md>)

Topics: [NoSQL](<https://devfeed.tech/topics/nosql.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [acid](<https://devfeed.tech/tags/acid.md>), [availability](<https://devfeed.tech/tags/availability.md>), [cap-theorem](<https://devfeed.tech/tags/cap-theorem.md>), [consistency](<https://devfeed.tech/tags/consistency.md>), [data](<https://devfeed.tech/tags/data.md>), [database](<https://devfeed.tech/tags/database.md>), [databases](<https://devfeed.tech/tags/databases.md>), [distributed-system](<https://devfeed.tech/tags/distributed-system.md>), [durability](<https://devfeed.tech/tags/durability.md>), [latency](<https://devfeed.tech/tags/latency.md>), [network](<https://devfeed.tech/tags/network.md>), [nosql](<https://devfeed.tech/tags/nosql.md>), [nosql-databases](<https://devfeed.tech/tags/nosql-databases.md>), [partition](<https://devfeed.tech/tags/partition.md>), [storage](<https://devfeed.tech/tags/storage.md>)

## AI overview

The article explains eventual consistency in NoSQL databases and distinguishes it from ACID consistency. It discusses durability, defines eventual consistency using cited formulations, and introduces a replicated key-value database model using N, W, and R parameters.

## Source excerpt

"A son can bear with equanimity the loss of his father, but the loss of his data may drive him to despair." (Machiavelli, quoted from memory) While traditional databases are ACID, with the 'D' meaning Durability, the NoSQL databases are mainly described by their memory model, i.e. Strong Consistency vs. Eventual Consistency. We're going to see that durability is not something you can forget about so easily. Definition of Eventually Consistent Eventual Consistency was defined by Werner Vogels in [E2] "the storage system guarantees that if no new updates are made to the object, eventually all accesses will return the last updated value." It's one definition among many. Baillis and Ghodsi mention for example [E3] "Informally, it guarantees that, if no additional updates are made to a given data item, all reads to that item will eventually return the same value." This definition only says that the value will converge to something (say '42'). In 1995, Terry used [V5] "All servers move towards eventual consistency. That is, the Bayou system guarantees that all servers eventually receive all Writes.". As most implementations available today are inspired by the Dynamo paper and Vogels' works, it's safer to stick to Vogels' definition, who knew them all, and has chosen his words carefully. In the CAP series, I explained the importance of this definition. And finally, this consistency is not the same thing as the consistency in ACID. Using an eventually consistent database So if we have an eventually consistent key-value database, we can implement a client that would be doing something like this for example: ecStorage.put("anId", "someData"); while (ecStorage.get("anId") == null) sleep 1 second; We know that this program will finish: even if the first "gets" may not see our write, eventually they will see it. Eventually Consistent database - possible implementation The most usual implementation is the one described once again by Werner Vogels, once again in his [E2] paper: N