When you choose an eventually consistent data store you’re prioritizing availability and partition tolerance over consistency, but this doesn’t mean your application has to be inconsistent. What it does mean is that you have to move your conflict resolution from writes to reads. Riak does almost all of the hard work for you, but if it’s not acceptable to discard some writes then you will have to set
true on your bucket(s) and handle siblings from your application. In some cases, this might be trivial. For example, if you have a set and only support adding to that set, then a merge operation is just the union of those two sets.
So, Bob Ippolito (Mochi Media) created statebox to address this scenario for data structure supporting repeatable operations.
Original title and link: statebox:an eventually consistent data model for Erlang and Riak (NoSQL databases © myNoSQL)