A CRDT primer: Why CRDTs are perfect for eventual consistency
Who is this presentation for?
- Software engineers and software architects
When it comes to distributed systems, coordination is slow. CRDTs are data structures that promise strong eventual consistency for highly available systems without the costs of coordination. If you’ve read about the theory behind state-based CRDTs, you may have run across the term “monotonic join semi-lattice." Despite the intimidating name, this concept (drawn from order theory) is built out of familiar elements.
John Mumm starts with these familiar elements of theory to build up to the complete mathematical concept. You’ll look at how state-based CRDTs work, relying on the lessons you’ve learned from order theory. John explores why you might want to use CRDTs in your own system by looking at an imaginary photo-sharing app called BirdWatch. Users of this app are much more interested in getting immediate feedback than in seeing the most up-to-date possible view of the entire system, which means you should consider eventual consistency. If you need to design your own CRDTs in practice, it’s helpful to understand the theory underlying them.
Once you understand why CRDTs are such a perfect fit for eventual consistency, you’ll implement a simple CRDT called a G-Counter and see that something just a little more sophisticated than a G-Counter could be a great fit for BirdWatch or similar apps. You’ll leave understanding why that dreaded “monotonic join semi-lattice” isn’t really that complex after all.
- A basic understanding of the principles underlying distributed systems
What you'll learn
- Learn why CRDTs are a perfect fit for eventual consistency, how the mathematics underlying them can be understood by building up from simple concepts, and how this theoretical basis can be useful for implementing CRDTs in practice
John Mumm is a software architect at Wallaroo Labs based in Netherlands, where he works on an open source high-performance framework for building stateful distributed applications. John holds a PhD in philosophy.
Leave a Comment or Question
Help us make this conference the best it can be for you. Have questions you'd like this speaker to address? Suggestions for issues that deserve extra attention? Feedback that you'd like to share with the speaker and other attendees?
Join the conversation here (requires login)
For conference registration information and customer service
For more information on community discounts and trade opportunities with O’Reilly conferences
For information on exhibiting or sponsoring a conference
For media/analyst press inquires