Skip to content
#DistirbutedSystems

Creating Local-First Collaboration Software with Automerge • Martin Kleppmann • GOTO 2023

#DistirbutedSystems #Architecture #SoftwareDevelopment #SoftwareArchitecture #SystemDesign #RnD

Interesting. speech Martin Kleppman, who is still in 2017 I have already written a classic book with a boar. (Designing Data-Intensive Applications). At the time of DDIA, Martin was more of a distributed systems researcher than an industrial developer. And at the end of his book, he talked about using CRDT. (Conflict-free Replicated Data Type) To solve problems of synchronization of changes on different nodes of the distributed system. Martin has been working on this for a long time, and in this report he says:

  1. like a library automerge came through 0.1 into 2017 year 2.1 into 2023 year
  2. And why do we care?

The report consisted of the following parts Martin first talked about how we're now making distributed systems on the Web -- this is a really cool picture. 6 different representations of the state of the application (HTML DOM, JS app state, JSON REST API, model objects, database, persistent layer) Martin then offered an alternative in the form local-first software, which resembles the good old desktop apps ... but they add the automerge library This library gives JSON like an interface for working with data that resembles git, but not for the source code, but for the data of our applications. The point is to store not just the final state data, but some set of changes. (In git, it's commits.)In parallel, you can automatically combine these changes. (hence the automerge) With this approach, applications work in local-first format with their data using the automerge library, plus this library takes on the complexity of spreading and synchronizing changes across different nodes. Martin noted that this approach is not universal and it is not worth using it in all types of applications, but it can be convenient for creating collaborative services - for example, in order to make your own versions of services like Google Docs, Miro, Slack, etc. Finally, Martin talked about the current work on an algorithm for working with rich text, which is needed for a collaborative tool for editing text. (This is Google Docs.). Here Martin on his fingers explained the difficulty and showed how they plan to overcome it.

All in all, this is an interesting talk from an interesting speaker whose thoughts have influenced a large number of engineers. It’s great to see that Martin is not only good at writing code and books, but also at performing on stage.)

#DistirbutedSystems #Architecture #SoftwareDevelopment #SoftwareArchitecture #SystemDesign #RnD