4–7 Nov 2019

A CRDT primer: Why CRDTs are perfect for eventual consistency

John Mumm (Wallaroo Labs)
15:5516:40 Thursday, 7 November 2019
Location: M8
Secondary topics:  Theoretical

Who is this presentation for?

  • Software engineers and software architects

Level

Beginner

Description

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.

Prerequisite knowledge

  • 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
Photo of John Mumm

John Mumm

Wallaroo Labs

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)

Contact us

confreg@oreilly.com

For conference registration information and customer service

partners@oreilly.com

For more information on community discounts and trade opportunities with O’Reilly conferences

Become a sponsor

For information on exhibiting or sponsoring a conference

pr@oreilly.com

For media/analyst press inquires