Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Automerge: Replicated Data Structures for Peer-to-Peer Collaboration

Automerge: Replicated Data Structures for Peer-to-Peer Collaboration

Slides from a talk at the 11th ACM SIGOPS Workshop on Large-Scale Distributed Systems and Middleware (LADIS), Royal Holloway, University of London, Egham, UK, 27 July 2018.

Abstract:

This talk introduces Automerge, a JavaScript library for data synchronisation between mobile devices such as laptop computers and smartphones. It allows users to read and modify data even while their device is offline, and it automatically merges changes made concurrently on different devices. Unlike most existing data synchronisation systems, Automerge does not require data to be sent via a centralised server, but rather allows local and peer-to-peer networks to be used. We show how this project spans the gamut from the theory of Conflict-free Replicated Data Types (CRDTs) and formal verification, all the way to implementing collaborative applications that use these data structures.

Martin Kleppmann

July 27, 2018
Tweet

More Decks by Martin Kleppmann

Other Decks in Research

Transcript

  1. For details, see our paper at https://doi.org/10.1145/3133933 Victor B. F.

    Gomes, Martin Kleppmann, Dominic P. Mulligan, and Alastair R. Beresford: Verifying Strong Eventual Consistency in Distributed Systems. PACMPL 1(OOPSLA), 2017.
  2. Trellis, a Trello clone based on Automerge: https://github.com/automerge/trellis Joint work

    with Orion Henry, Peter van Hardenberg, Roshan Choxi, and Adam Wiggins.
  3. MPL, a WebRTC network layer for Automerge: https://github.com/automerge/mpl Joint work

    with Orion Henry, Peter van Hardenberg, Roshan Choxi, and Adam Wiggins.
  4. Resources • Automerge: https://github.com/automerge/automerge • Trellis: https://github.com/automerge/trellis • Pixelpusher: https://github.com/automerge/pixelpusher

    • MPL (WebRTC layer): https://github.com/automerge/mpl • Hypermerge: https://github.com/automerge/hypermerge • Dat / Hypercore: https://datproject.org/ • Proving CRDTs correct: https://doi.org/10.1145/3133933 • JSON CRDT: http://arxiv.org/abs/1608.03960 • My book: http://dataintensive.net/