System design interview questionHardCollaborative System

Design a Collaborative Document Editor like Google Docs

Design Google Docs-style collaboration: multiple users edit the same document with near real-time sync and durable saves.

Interview scope

Client → Realtime Gateway and Client → Gateway/LB → App. App → Cache, App → DB, App → Object Storage. Wire Realtime ↔ App. No Client → DB.

Functional requirements

  • Open a document and stream edits to collaborators.
  • Persist document state / revisions.
  • Auth and sharing permissions at a high level.

Scale and quality goals

  • Edit sync must feel live. Realtime Gateway is core.
  • Durable DB for document state, plus Object Storage for large snapshots/exports.
  • Cache for hot collaborative sessions. Do not put saves on a CDN.

Capacity assumption

Design for this scale

Assume ~10M DAU docs users; peak concurrent editors on viral docs need realtime fan-out, not request polling only.

Practice more than a diagram

Place components on the Froquiz canvas, connect the data flow, and see which decisions the scenario-specific review finds missing. The full exercise and review unlock with Premium.

Explore Premium