Building a reactive multi user document editor in ScalaJS
summary
Describes a working reactive, multi-user invoice editor implemented with Scala.js and Outwatch that streams compact event-sourced edits (protobuf over WebSocket) instead of shipping whole XML documents; backend composes an initial JSON state and the client applies incremental edits, letting two browsers show near-real-time sync. Handles large UBL XMLs by storing enums as integers to cut size, benchmarks show server-side replay of 500 events in ~10 ms while client deserialization is slower, so heavy work stays server-side.
AI-written summary · about
chapters (13)
- 0:00Introduction
- 1:20Semantics
- 4:23Challenges
- 5:55Rethink
- 8:55XML vs JSON
- 11:30Architecture
- 15:40Data structure
- 17:59Type safety
- 20:13Google Web Toolkit
- 22:05OutWatch
- 23:55Demo
- 28:00Eclipse
- 35:35Performance
related talks
37mBuilding a Collaborative Text Editor
41mCreating collaborative editing UIs in React
40mNew algorithms for collaborative text editing
26mBuilding Real-Time Multi-User Apps With JSON Patches
23mBuilding a real-time collaborative editor with Phoenix
01h 00mBuilding a real-time collaborative editor
32mDeveloping a Document Editor
05mBuilding Editors in the Browser
