Tutorial: No more fighting with your siblings. Riak Data Types (CRDTs) remove the stress

Magnus Kessler
Client Services Engineer @ Basho

Choosing a highly available database can mean sacrificing some consistency of data during failure scenarios, but it should not mean data loss. Databases designed with partition tolerance and eventual consistency in mind can offer multiple ways to handle conflict resolution, but some can be difficult to reason about or so simple that you lose the configurability you need.

In Riak KV we recommend you allow 'siblings' or multiple versions of data to be stored whenever there is no way to determine the correct latest version. But once you have multiple siblings, how do you get back to the single correct and consolidated version of data your application is expecting to use?

Riak Data Types are distributed data structures designed to provide deterministic resolution logic, removing the need for the application developer to write such functionality in an ad-hoc manner or multiple varying ways across a large project.


We will demonstrate why Riak KV would generate siblings and then implement each of the Riak Data Types available in Riak KV to solve the challenges of working with a highly available and eventually consistent database.


Application developers/designers and Database Administrators responsible for working with a database layer in any large distributed architecture.


As a Basho Client Services Engineer, Magnus enjoys the challenges of making distributed systems work at their best and understanding their inner workings. He's particularly interested in any applications in the field of natural sciences.

GitHub: kesslerm

Back to conference page