Slides from a presentation given on 12 July 2019 at the Hydra distributed computing conference, St. Petersburg, Russia.
Google Docs and similar web apps are very convenient if several people need to work together on a document: all users can simultaneously edit the shared document without having to send files back and forth by email. From a distributed systems point of view, real-time collaboration is a replication problem: each user has a replica of the shared document on their device, which they can modify locally, and any changes are sent over the network to their collaborators.
Users may edit a document while offline, causing their replica to become temporarily inconsistent with the others. As they re-synchronise with others, conflicts need to be resolved so that all collaborators end up in a consistent state. Conflict-free Replicated Data Types (CRDTs), first proposed in 2011, are increasingly being used to merge different users’ versions of a document in collaborative software.
This talk will give an update on the latest research on CRDTs, and our open source implementation Automerge. We will also discuss efforts to build “local-first software”, a new generation of collaborative software, on top of these technologies.