by Reid Draper
Eventual consistency is everywhere. DNS is the canonical example, but it's becoming more important in mobile applications with sporadic connectivity and databases with high availability requirements. One of the difficulties with these systems is resolving conflicting writes. Some cases allow for last-write-wins, but other domains require a mechanism which doesn't lose data. knockbox is an open source Clojure project that takes data-structure implementations that support automatic conflict resolution, and wraps them up to be used just like any other Clojure seq, set, or map. This talk will explore the motivation behind knockbox, the data-structures themselves, using knockbox with Riak, and issues like garbage collection and synchronization.
16th–17th March 2012