Composing CRDTs Convergent by Construction
Alexander Städing Dominguez, George Zakhour, Pascal Weisenburger, Guido Salvaneschi
Abstract
Conflict-Free Replicated Data Types (CRDTs) are abstract data types that ensure eventual convergence among data replicas in distributed systems. As they provide convergence out-of-the-box, CRDTs have become key building blocks for highly available, collaborative, and offline-capable systems, powering applications from real-time editors to distributed databases. Adopting an individual CRDT is straightforward, but real-world software routinely requires composing them. For example, an application might store a set of counters, combining a set CRDT with a counter CRDT. Unfortunately, classical CRDT theory does not guarantee that a composition of convergent CRDTs converges, forcing developers to reason about convergence again - the very burden CRDTs were introduced to remove. In this paper, we introduce a compositional framework for a broad class of operation-based CRDTs. It assembles CRDTs from five principal combinators -- Product, MapState, Associate, Traverse, and MapInterpretation -- each with built-in convergence guarantees. Any CRDT assembled from these combinators is itself a CRDT, preserving convergence by construction. This set is free of redundancy and subsumes previously proposed combinators. We develop the framework, its underlying theory, and its proofs entirely in Lean 4, producing a single artifact that serves as both the formal model and an executable, verified implementation. Our reusable library, Crdtlib, provides implementations and proofs for every combinator and CRDT in this paper. Our case studies (i) implement common CRDTs from Shapiro et al., (ii) apply the combinators in a complete application, and (iii) encode a JSON-structured tree CRDT as expressive as Automerge, with competitive runtime and memory use. These case studies show that developers can compose CRDTs without re-proving convergence for each composite.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 836ec7bb-d868-45b5-a555-a4715c7bd18cBuilds on8
- Katara: synthesizing CRDTs with verified liftingShadaj Laddad, Conor Power, Mae Milano, Alvin Cheung et al.OOPSLA 2022 · 24 citations
- Type-Checking CRDT ConvergenceGeorge Zakhour, Pascal Weisenburger, Guido SalvaneschiPLDI 2023 · 16 citations
- Modular verification of op-based CRDTs in separation logicAbel Nieto, Léon Gondelman, Alban Reynaud, Amin Timany et al.OOPSLA 2022 · 16 citations
- Rethinking safe consistency in distributed object-oriented programmingMirko Köhler, Nafise Eskandani, Pascal Weisenburger, Alessandro Margara et al.OOPSLA 2020 · 13 citations
- Abstraction for conflict-free replicated data typesHongjin Liang, Xinyu FengPLDI 2021 · 9 citations
Related papers
- Automatically Verifying Replication-Aware LinearizabilityVimala Soundarapandian, Kartik Nagar, Aseem Rastogi, K. C. SivaramakrishnanOOPSLA 2025
- Keep CALM and CRDT OnShadaj Laddad, Conor Power, Mae Milano, Alvin Cheung et al.VLDB 2023 · 13 citations
- ECROs: building global scale systems from sequential codeKevin De Porre, Carla Ferreira, Nuno M. Preguiça, Elisa Gonzalez BoixOOPSLA 2021 · 15 citations
- Certified mergeable replicated data typesVimala Soundarapandian, Adharsh Kamath, Kartik Nagar, K. C. SivaramakrishnanPLDI 2022 · 12 citations
- RunTime-assisted convergence in replicated data typesGowtham Kaki, Prasanth Prahladan, Nicholas V. LewchenkoPLDI 2022 · 3 citations
