Extending JSON CRDTs with Move Operations
Liangrun Da and Martin Kleppmann
11th Workshop on Principles and Practice of Consistency for Distributed Data (PaPoC),
Athens, Greece,
April 2024.
Abstract
Conflict-Free Replicated Data Types (CRDTs) for JSON allow users to concurrently update a JSON
document and automatically merge the updates into a consistent state. Moving a subtree in a map or
reordering elements in a list within a JSON CRDT is challenging: naive merge algorithms may
introduce unexpected results such as duplicates or cycles. In this paper, we introduce an algorithm
for move operations in a JSON CRDT that handles the interaction with concurrent non-move operations,
and uses novel optimisations to improve performance. We plan to integrate this algorithm into the
Automerge CRDT library.