'New algorithms for collaborative text editing' by Martin Kleppmann (Strange Loop 2023)

preview_player
Показать описание
Real-time collaboration made apps like Google Docs and Figma popular, and many other apps have also been adding similar features. However, the algorithms that enable collaboration are surprisingly tricky, even for seemingly simple data types like text. In this talk I will share insights from our recent research on collaborative text editing, answering questions such as: How can we combine ideas from version control, such as branches and pull requests, with real-time sharing? And how can we move from cloud-centric apps to a more decentralised, local-first model of software without sacrificing features or performance?

Martin Kleppmann
Distributed systems researcher
@martinkl

Martin Kleppmann is a researcher in distributed systems and security protocols at the Technical University of Munich and at Ink & Switch. He received his PhD from the University of Cambridge. In a previous life he was a Silicon Valley software engineer and entrepreneur, cofounding and selling two startups and working on large-scale data infrastructure at LinkedIn. He is the author of the best-selling O’Reilly book Designing Data-Intensive Applications.

----
Recorded Sept 22, 2023 at Strange Loop 2023 in St. Louis, MO.
Рекомендации по теме
Комментарии
Автор

Interesting. Storing the formatting in a companion data structure is a very elegant solution. I was thinking of doing Markdown; glad someone else did that experiment already. I'll definitely have to rethink how I generate IDs for elements in RGArrays and Causal Trees since UUIDs are too noisy to be easily compressed and create a ton of metadata overhead.

kkiller
Автор

Interesting, if I wanted a centralised sync server that didn't have knowledge of the contents, I suppose I'd have to forgo compaction or use compaction on batches only from individual clients, sacrificing some real-time. I wonder if that's feasible or in typical applications, server side storage would blow out.

supermajic
Автор

This is great, Martin!
The design choices and what they enabled somehow reminded me of event sourcing. Is there a relationship between CRDTs and event sourcing?

davidglaubman