DaveWentzel.com            All Things Data

Eventual Consistency or ACIDs and BASEs

This is the next post in my NoSQL series.  A fundamental concept endorsed by many NoSQL solutions is "eventual consistency."  Each product can implement eventual consistency however it likes.  RDBMS people are familiar with ACID properties (Atomicity, Consistency, Isolation, Durability).  NoSQL people like to bend the rules a bit and I like to call these BASE properties (Basic Availability, Soft-state, Eventual Consistency).  

So, when would you use BASE transactions?  

One case is when your network is not reliable.  For instance, transactions that must span your local network as well as a cloud provider.  Local updates can be queued and batched and sent later.  While the remote transactions are in-flight the "syste" is in an inconsistent state, but eventually all updates will be applied and the system will be in balance again.  

Inventory systems can withstand eventual consistency, usually, thus are good candidates.  

In general, consider BASE transactions in cases where ACID transactions are not immediately required and the data eventually becomes consistent and is never lost.  

Add new comment