Overview
Design a rich text editor where several people type, format, and delete at the same time in one document, and no edit is lost or reordered.
Requirements
- 01Sync edits between everyone in the document in under 100ms
- 02Resolve conflicts without corrupting the document or scrambling character order
- 03Broadcast live cursor positions and show who is in the document
- 04Allow offline editing, then sync and merge when the connection returns
- 05Keep revision history, so a user can rewind and compare versions
Concepts in play
CRDTOperational TransformationWebSocketsPubSubConcurrency