Your application has gotten big, you know you need to start scaling horizontally. You can't afford downtime because competition is tight and users will jump ship if they have a bad experience, but you also can't sacrifice the rapid development process you're used to. You're looking at scalable NoSQL databases like Riak, but the key-value model is too difficult, especially when you have to deal with eventual consistency too. What can you do?
Luckily, Riak 2.0 now includes a number of rich data types that give you a familiar interface to counters, sets, maps, registers, and boolean flags, while handling all the ugliness of eventual consistency for you. Instead of teaching your application how to resolve conflicts for every new type of data, you can simply manipulate the data types to fit your application and quit worrying. In this talk, I'll briefly introduce the theory and implementation behind Riak's data types (also known as CRDTs), and walk through some example applications that use them in popular languages. You can have your horizontally-scalable cake and eat it too!