Frontend Engineer at SoundCloud
This talk is based on research by
Fraser, Neil (2009) [Fra09]
Sun et al. (1998) [Sun98]
Achieving convergence, causality preservation, and intention preservation in real-time cooperative editing systems
Monschke, Jan (2014) [Mon14]
Building a collaborative music production environment using emerging web standards
Google Docs, Wunderlist, Trello…
Who here has built an application like that before?
How did you sync?
Due to latency on web, documents might be in different states at the same time.
The algorithm should allow these states and not block the editing features.
The intent of a change should be preserved.
When local changes are applied onto remote documents, the local intent should be preserved.
A change is always applied in its causal context.
The order of changes on local documents is preserved and applied to remote documents.
a.k.a the pessimistic approach
The magic that powers Google
Find witty punchline