Design a Collaborative Editor (Google Docs)

Advanced · 27 min read · High-Level Design, Case Studies: Advanced

OT vs CRDTs, sessions, presence and persistence.

This is an Advanced lesson, part of Premium. What it covers:

  • 1. Clarify the problem
  • 2. Requirements
  • 3. Capacity estimation
  • 4. Why naive approaches fail
  • 5. Approach A — Operational Transformation (OT)
  • 6. Approach B — CRDTs
  • 7. High-level design
  • 8. Deep dives
  • 9. Failure modes
  • 10. Trade-offs summary
  • 11. What interviewers look for
  • Interview questions
  • Practice
  • Further reading

Previous: Design a Distributed Job Scheduler · Next: Design a Distributed Key-Value Store