Conflict-free replicated data type (CRDT)

Topic | v3 | updated by janarez |

In distributed computing, a conflict-free replicated data type (CRDT) is a data structure which can be replicated across multiple computers in a network, where the replicas can be updated independently and concurrently without coordination between the replicas, and where it is always mathematically possible to resolve inconsistencies that might come up.The CRDT concept was formally defined in 2011 by Marc Shapiro, Nuno Preguiça, Carlos Baquero and Marek Zawirski. Development was initially motivated by collaborative text editing and mobile computing. CRDTs have also been used in online chat systems, online gambling, and in the SoundCloud audio distribution platform. The NoSQL distributed databases Redis, Riak and Cosmos DB have CRDT data types.


subtopic of Computer programming

Computer programming is the process of designing and building an executable computer program to accom...

uses Hybrid logical clock

Hybrid logical clock, HLC, combines the best of logical clocks and physical clocks. HLC captures the...

relates to Operational transformation

Operational transformation (OT) is a technology for supporting a range of collaboration functionaliti...

uses Yjs

Yjs is a CRDT implementation that exposes its internal data structure as shared types. Shared types a...

used by Local first software

“Local-first software”: a set of principles for software that enables both collaboration and ownershi...

uses Automerge

A JSON-like data structure (a CRDT) that can be modified concurrently by different users, and merged...

uses Lamport timestamp

The Lamport timestamp algorithm is a simple logical clock algorithm used to determine the order of ev...

similar to Fluid Framework

Fluid is a free and open source computer platform for real-time collaboration across applications. Mi...

uses Dotted version vector

The basic idea of Dotted Version Vectors (dvv) is to take a version vector (vv) and add the possibili...

Edit details Edit relations Attach new author Attach new topic Attach new resource

cons given in How Figma’s multiplayer technology works

10.0 rating 1.0 level 10.0 clarity 3.0 background – 1 rating

This is the post we wished we could have read when we were first starting our research. It's one thin...

treated in CRDTs: Part 1

10.0 rating 2.0 level 10.0 clarity 2.0 background – 1 rating

This is a series about Conflict-Free Replicated Data Types, or CRDTs for short. Their purpose is to a...

treated in An introduction to state-based CRDTs

10.0 rating 2.0 level 5.0 clarity 2.0 background – 1 rating

This is one of the topics I've already talked about on several presentations in the past, but never a...

treated in @adlrocha - What if we had Local-First Software?

9.5 rating 2.5 level 9.5 clarity 1.5 background – 2 ratings

The path to an offline SaaS model

compared in I was wrong. CRDTs are the future

9.5 rating 1.5 level 9.0 clarity 3.5 background – 2 ratings

I saw Martin Kleppmann’s talk a few weeks ago about his approach to realtime editing with CRDTs, and...

compared in Building real-time collaboration applications: OT vs CRDT

9.0 rating 2.0 level 9.0 clarity 4.0 background – 1 rating

What do OT (Operational Transformation) and CRDT (Conflict-free Replicated Data Type) really mean? An...

cons given in OT and CRDT trade-offs for Real-Time collaboration | Hacker News

9.0 rating 2.0 level 5.0 clarity 3.0 background – 1 rating

discussed in In Search of a Local-First Database

8.0 rating 1.0 level 8.0 clarity 3.0 background – 1 rating

My criteria for evaluating syncing solutions

treated in Faster CRDTs: An Adventure in Optimization

10.0 rating 4.0 level 8.0 clarity 4.0 background – 1 rating

relates to CRDTs for Mortals - James Long at dotJS 2019

9.0 rating 4.0 level 7.0 clarity 3.0 background – 1 rating

What do CRDTs and frontends have to do with each other? James talks about how CRDTs finally deliver...

cons given in Are CRDTs suitable for shared editing?

9.0 rating 4.0 level 9.0 clarity 3.0 background – 1 rating

Performance analysis of the Yjs CRDT in practice and in the worst case scenario.

treated in Conflict-free Replicated Data Types: An Overview

6.0 rating 7.0 level 6.0 clarity 3.0 background – 1 rating

Internet-scale distributed systems often replicate data at multiple geographic locations to provide l...

treated in CRDTs: The Hard Parts — Martin Kleppmann’s talks

A talk on the latest research on CRDTs, originally given at the Hydra distributed computing conferenc...

treated in CRDT: Conflict-free Replicated Data Types

How to count hits? What about how to store “likes” of popular users? In this article we wi...

treated in About CRDTs • Conflict-free Replicated Data Types

Resources and community around CRDT technology — papers, blog posts, code and more.

treated in A comprehensive study of Convergent and Commutative Replicated Data Types

Eventual consistency aims to ensure that replicas of some mutable shared object converge without fore...

treated in Composing and decomposing op-based CRDTs with semidirect products

Operation-based Conflict-free Replicated Data Types (CRDTs) are eventually consistent replicated data...

treated in CRDTs - Everything I know

This is my personal wiki where I share everything I know about this world.

treated in Peritext: A CRDT for Rich-Text Collaboration

Collaboration on rich text is hard to model with plain-text approaches. We review the challenges and...