A collection of awesome CRDT resources
- CRDT.tech: what a CRDT is, and why you would want one
- CRDT Glossary: the vocabulary the rest of this list assumes
- Partially ordered set (Wikipedia)
- Total Order (Wikipedia)
- Causal Ordering
- Semilattice (Wikipedia)
- A CRDT Primer Part I: Defanging Order Theory (2015)
- Logical Clock (Wikipedia)
- Lamport Timestamps (Wikipedia)
- Assigning Lamport & Vector Timestamps
- Vector Clock (Wikipedia)
- Version Vector (Wikipedia)
- Why Logical Clocks are Easy (2016)
- The Only Undoable CRDTs are Counters - Stephen Dolan (2020)
- Pure Operation-Based Replicated Data Types - Carlos Baquero et. al. (2017)
- Large-Scale Geo-Replicated Conflict-free Replicated Data Types - Carlos Bartolomeu (2015)
- A comprehensive study of Convergent and Commutative Replicated Data Types - Marc Shapiro et. al. (2011)
- Convergent and Commutative Replicated Data Types - Marc Shapiro et. al. (2011)
- Conflict-free Replicated Data Types - Marc Shapiro et. al. (2011)
- Evaluating CRDTs for Real-time Document Editing - Mehdi Ahmed-Nacer et. al. (2011)
- Consistency, Availability, and Convergence - Prince Mahajan et. al. (2011)
- CRDTs: Consistency without concurrency control - Mihai Letia et. al. (2009)
- Designing a commutative replicated data type - Marc Shapiro et. al. (2007)
- Achieving Convergence, Causality-Preservation, and Intention-Preservation in Real-Time Cooperative Editing Systems - Chengzheng Sun et. al. (1998)
- Dotted Version Vectors: Efficient Causality Tracking for Distributed Key-Value Stores - Nuno Preguiça et. al. (2012)
- Virtual Time and Global States of Distributed Systems - Friedemann Mattern (1988)
- Timestamps in Message-Passing Systems That Preserve the Partial Ordering - Colin Fidge (1988)
- Time, Clocks, and the Ordering of Events in a Distributed System - Leslie Lamport (1978)
- Collaborative Text Editing with Eg-walker: Better, Faster, Smaller - Joseph Gentle & Martin Kleppmann (2024)
- RGASplit: High Responsiveness for Group Editing CRDTs - Loïck Briot et. al. (2016)
- Yjs: A Framework for Near Real-Time P2P Shared Editing on Arbitrary Data Types - Petru Nicolaescu et. al. (2015)
- SwiftCloud: Fault-Tolerant Geo-Replication Integrated all the Way to the Client Machine - Marek Zawirski et. al. (2013)
- LSEQ: an Adaptive Structure for Sequences in Distributed Collaborative Editing - Brice Nédelec et. al. (2013)
- RGA, RHT, RFA: Replicated abstract data types: Building blocks for collaborative applications - Hyun-Gul Roh (2011)
- WOOTR: Abstract unordered and ordered trees CRDT - Stéphane Martin et. al. (2011)
- COPS: Don't Settle for Eventual: Scalable Causal Consistency for Wide-Area Storage with COPS - Wyatt Lloyd et. al. (2011)
- Logoot-Undo: Distributed Collaborative Editing System on P2P Networks - Stéphane Weiss et. al. (2010)
- Logoot: A Scalable Optimistic Replication Algorithm for Collaborative Editing on P2P Networks - Stéphane Weiss et. al. (2009)
- TreeDoc: A commutative replicated data type for cooperative editing - Nuno Preguiça et. al. (2009)
- WOOT: Real time group editors without Operational transformation - Gérald Oster et. al. (2005)
- A framework for verifying Conflict-free Replicated Data Types (CRDTs) - Dominic Mulligan (2017)
- Verifying Strong Eventual Consistency in Distributed Systems - Victor B. F. Gomes (2017)
- On Verifying Causal Consistency - Bouajjani et. al. (2017)
- CRDTs: Theory and Practice (2025)
- Serverless collaboration (2019)
- Good Spirits: Syncing Data Statelessly (2018)
- Data Laced with History: Causal Trees & Operational CRDTs (2018)
- Code together in real time with Teletype for Atom (2017)
- CRDTs explained - supercharge your serverless with CRDTs at the Edge (Russell Sullivan) (2017)
- Working code for Operational Transformation/CRDT hybrid (2017)
- Datanet: a New CRDT Database that Let's You Do Bad Bad Things to Distributed Data (2016)
- Towards a unified theory of Operational Transformation and CRDT (2016)
- Delta State Replicated Data Types (2016)
- A CRDT Primer Part II: Convergent CRDTs (2015)
- A Look at CRDTs (2015)
- Convergent Replicated Data Types (2015)
- Logs and docs (2013)
- Distributed data structures with Coq (2013)
- Why CRDT didn't work out as well for collaborative editing xi-editor (2019)
- Real Differences between OT and CRDT for Co-Editors (2018)
- CRDTs: The Hard Parts - Martin Kleppman (2020)
- Automerge: Making servers optional for real-time collaboration - Martin Kleppmann (J On The Beach 2018)
- CRDTs for Non Academics (Russell Sullivan) (2017)
- Tutorial: How to build an Collaborative Editing Application with IPFS using CRDT (IPFS) (2017)
- Lightning Talk: Just-Right Consistency: Closing The CAP Gap - Christopher Meiklejohn (Erlang Solutions) (2017)
- Dmitry Ivanov & Nami Naserazad - Practical Demystification of CRDT (Lambda Days 2016) (Erlang Solutions)
- Kappa Day - Practical demystification of CRDT - Tomtom (Jug Łódź) (2016)
- CRDTs in Practice - Marc Shapiro & Nuno Preguiça (Erlang Solutions) (2015)
- ElixirConf 2015 - CRDT: Datatype for the Apocalypse by Alexander Songe (Confreaks)
- "Transactions: myths, surprises and opportunities" by Martin Kleppmann (Strange Loop) (2015)
- "CRDTs Illustrated" by Arnout Engelen (Strange Loop) (2015)
- "Distributed, Eventually Consistent Computations" by Christopher Meiklejohn (Strange Loop) (2015)
- Using Erlang, Riak and the ORSWOT CRDT at bet365 (...) - Michael Owen - Erlang User Conference 2015 (Erlang Solutions)
- Strong Eventual Consistency and CRDTs - Marc Shapiro (ThisByGustav) (2013)
- WOOT: an algorithm for concurrency and collaborative authoring! (Julien Genestoux) (2013)
json-joy: A high-performance JSON and rich-text CRDT focused on speed and correctness- KSeq: A continuous sequence CRDT based on Logoot/LSEQ
- LSEQ: CRDT for sequences
- LSEQTree: A data structure for distributed arrays using the LSeq allocation strategy
- LSEQArray: aims to provide an implementation of a CRDT-based array using the allocation strategy LSEQ
- Automerge: A JSON-like data structure (a CRDT) that can be modified concurrently by different users, and merged again automatically
- Yjs: framework for offline-first p2p shared editing on structured data like text, richtext, json, or XML
- RON: Replicated Object Notation, a distributed live data format (implementations in C++, Elixir, Go, Haskell, Java, JavaScript, Rust)
- teletype-crdt: The string-wise sequence CRDT powering peer-to-peer collaborative editing in Teletype for Atom
- Peer CRDT: An extensible collection of operation-based CRDTs that are meant to work over a p2p network
- Distributed Data Structures in Coq
- Akka CRDT: An Eventually Consistent REST/JSON database using CRDTs, Akka Cluster and LevelDB
- Akka Distributed Data
- wurmloch-crdt: Experimental implementations of CRDTs for the JVM
- Ama.CRDT: A C# .NET 10 high-performance, Native AOT-ready library using CRDTs
- Velt: collaboration SDK providing Yjs-based CRDT stores (array, map, text, XML) with hosted sync, presence and offline editing
- Loro: CRDT library inspired by Event Graph Walker (for Rust, JavaScript and Swift)
- Companion to the article "Data Laced with History: Causal Trees & Operational CRDTs"
- Meangirls: Convergent Replicated Data Types
- mutxt.com: a polished local-first rich-text editor based on
json-joyPeritext CRDT, available as a web app and desktop app (npx mu-txt), plus open-source Reactmutxt-reactand Web Componentmutxt-elementlibraries - SandEdit: a project aiming to provide a distributed collaborative editor based on CRDTs
- Teletype for Atom: Share your workspace with team members and collaborate on code in real time in Atom
- Xi Editor: an attempt to build a high quality text editor, using modern software engineering techniques
- IPFS CRDT Shared Editing: Decentralized Real-Time Collaborative Documents - Conflict-free editing in the browser using js-IPFS and CRDTs
- Shared editing demo using IPFS and CRDT
- Co: collaborative text editor, uses woot. front end in Elm, back in node
- woot-collaborative-editor: A real time collaboration toy project based on WOOT. Implemented with node.js and ws
- cljs-collab: Browser-to-browser collaborative editor
- Xray: An experimental next-generation Electron-based text editor
- AntidoteDB: planet scale, highly available, transactional database
- Riak KV: distributed NoSQL database designed to deliver maximum data availability by distributing data across multiple servers
- Hypermerge: combines Automerge, a CRDT, with hypercore, a distributed append-only log
- Roshi: a large-scale CRDT set implementation for timestamped events
- Swarm: JavaScript replicated model (M of MVC) library
- Datanet: an open source CRDT based data synchronization system
- Kuhirō: The Near Cloud
- Artel: CRDT-based memory replication across self-hosted instances over JSON Feed, no central coordinator
- Yorkie: a document store for building collaborative editing applications
- ZamSync: offline-first WAL sync engine in Rust using Hybrid Logical Clocks and Version Vectors for causal ordering and deduplication