LearnViz CompSci
Home / Learn / Distributed Systems & Cloud / CRDTs

Advanced Topic 48 of 51 Distributed Systems & Cloud

CRDTs

Data types that merge concurrent updates without conflicts.

How it works

Conflict-free replicated data types are data structures designed so that replicas can be updated independently and concurrently without coordination and still converge to the same state, because their merge operation is commutative, associative and idempotent. State-based CRDTs merge full states using a join over a semilattice, and operation-based ones broadcast commutative operations. Examples include grow-only counters, PN-counters, grow-only and two-phase sets, observed-remove sets, last-writer-wins registers and sequence CRDTs for text such as RGA and Logoot.

Where it is used

Collaborative editors, offline-first mobile apps, distributed databases such as Riak and Redis Enterprise, shopping carts and presence systems use CRDTs for eventual consistency with automatic merging.

Common pitfall

Metadata such as tombstones and version vectors can grow without bound and needs garbage collection. Semantics of concurrent edits are determined by the type and may surprise users, such as add-wins versus remove-wins. They cannot enforce global invariants like non-negative balances without coordination. Choose the CRDT that matches the intended semantics and test convergence with randomized operations.

Where it fits in the course

CRDTs is topic 48 of 51 in Distributed Systems & Cloud, rated Advanced. It follows Observability. The next topic is Distributed Tracing.

Practice and explore

How to study this topic

  1. Read the explanation above and restate the definition in your own words.
  2. Open the interactive lesson and answer its mini quiz.
  3. Read the common pitfall, then write a short example that avoids it.
  4. Check your understanding in the Distributed Systems & Cloud quiz, and revisit the topic if you miss a question.

Frequently asked questions

What is CRDTs?
Data types that merge concurrent updates without conflicts. It belongs to Distributed Systems & Cloud and is an advanced-level topic.
Where do people use CRDTs?
Collaborative editors, offline-first mobile apps, distributed databases such as Riak and Redis Enterprise, shopping carts and presence systems use CRDTs for eventual consistency with automatic merging.
What is the most common mistake with CRDTs?
Metadata such as tombstones and version vectors can grow without bound and needs garbage collection.
What should I learn before this topic?
Start with Observability, the topic just before it in Distributed Systems & Cloud.
How can I practice it?
Answer the mini quiz in the interactive lesson, then take the Distributed Systems & Cloud quiz.
Is CRDTs hard to learn?
It is an Advanced topic. Expect to read the explanation more than once and to connect it with earlier topics. Working through a small example by hand helps most.
How long does it take to learn CRDTs?
Most learners can read the explanation and finish the interactive lesson in under an hour. Fluency comes from applying the idea, so plan a few short practice sessions with the quiz.
Which topics are related to CRDTs?
Observability, Distributed Tracing, Circuit Breaker Pattern are closely connected. The full list is in the related topics section of this page.
What should I study after CRDTs?
Continue with Distributed Tracing, the next topic in Distributed Systems & Cloud.

Related topics