liveBook · Manning

Conflict-free replicated data type

As explained in Building User-Friendly DSLs

A replicated data structure designed so that concurrent updates can be combined without conflicts.

A conflict-free replicated data type (CRDT) records changes so concurrent updates can be combined without conflict. This supports collaborative editing without requiring a central server to decide which change wins. section 10.1

CRDT-based collaboration enables:

  • Peer-to-peer communication between collaborators. section 10.1
  • Real-time or asynchronous collaboration on shared DSL content. section 10.1
  • An alternative to rejecting or rolling back edits when concurrent changes conflict. section 10.1

Collaborative DSL editing

Multiple domain experts edit shared DSL content while their changes are recorded in a CRDT, allowing synchronized collaboration rather than letting the latest Save operation overwrite other versions. section 10.1

How Building User-Friendly DSLs covers it

How deep it goes
Defines conflict prevention and contrasts it with rollback-based server resolution, but stops short of implementation.
Examples
Uses collaborative code editing, Visual Studio Code Live Share, Codeshare, and shared DSL content as examples.
What you can do after
Evaluate CRDTs as an approach to preventing conflicts in collaborative editing systems.
How it connects
Connects collaborative editing with peer-to-peer communication, client-server architecture, version control, and domain-specific languages.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Building User-Friendly DSLs. The section links point to the parts of the book it draws on.