TheKnarf

CRDT & Mergable Replicated Datatypes

Conflict-free replicated datatypes is a set of datatypes that, unlike Git, guarantees that you can merge them without ever producing a merge conflict. This seems really powerful, but comes with a few big disatvantages. CRDT's are very specialiced datatypes with specific trade-offs for how they guarantee to be conflict free. Their usually really meta-data heavy.

Relevant articles

Libraries

  • Martin Klepmann's Automerge - a library which provides fast implementations of several different CRDTs, a compact compression format for these CRDTs, and a sync protocol for efficiently transmitting those changes over the network

    • autosurgeon - a Rust library for working with data in automerge documents

    • Automerge Repo - a wrapper for the Automerge CRDT library which provides facilities to support working with many documents at once, as well as pluggable networking and storage

  • Loro - Make your JSON data collaborative and version-controlled

  • cr-sqlite - Convergent replicated SQLite

  • Yjs

Other approaches

  • Irmin - A distributed database built on the same principles as Git. Irmin is an OCaml library for building mergeable, branchable distributed data stores.