Composing CRDTs Convergent by Construction
This program is tentative and subject to change.
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.
This program is tentative and subject to change.
Mon 5 OctDisplayed time zone: Pacific Time (US & Canada) change
13:30 - 15:00 | Distributed and Replicated SystemsOOPSLA at East Hall 1 Chair(s): Mohsen Lesani University of California at Santa Cruz | ||
13:30 18mTalk | Frashokereti: Non-aborting Optimistically Replicated Objects OOPSLA Eric Man Chan University of California at Riverside, Javad Saberlatibari University of California at Riverside, Mohsen Lesani University of California at Santa Cruz DOI | ||
13:48 18mTalk | PRDTs: Composable Design and Verification of Consensus Protocols using Replicated Data Types OOPSLA Julian Haas Technische Universität Darmstadt, Ragnar Mogk Technische Universität Darmstadt, Annette Bieniusa Rheinland-Pfälzische Technische Universität Kaiserslautern-Landau, Mira Mezini Technische Universität Darmstadt; ATHENE; hessian.AI DOI Pre-print | ||
14:06 18mTalk | Relight: Simple User-Level Checkpointing and Fast-Forward Replay for Distributed Task-Based Systems OOPSLA Elliott Slaughter SLAC National Accelerator Laboratory, Rupanshu Soi Stanford University, Michael Bauer NVIDIA Research, Alex Aiken Stanford University DOI | ||
14:24 18mTalk | Composing CRDTs Convergent by Construction OOPSLA Alexander Städing Dominguez University of St. Gallen, George Zakhour University of St. Gallen, Pascal Weisenburger University of St. Gallen, Guido Salvaneschi University of St. Gallen DOI Pre-print | ||
14:42 18mTalk | Augur: Predicting View Serializability Violations in Relational Data Store Applications OOPSLA Chujun Geng Ohio State University, Noah Charlton Ohio State University, Spyros Blanas Ohio State University, Michael D. Bond Ohio State University, Yang Wang Ohio State University DOI | ||