Designing Data-Intensive Applications
Case 9

Requirements and Constraints

Collaboration tools merge real-time editing, permissions, and durable document state.

Google Docs, Figma, and Notion share one constraint: the server orders concurrent operations so every client converges on the same document state.

Figma at scale

File permissions live in Postgres; live ops flow through a central collab server. A viewer cannot apply edits even with a crafted WebSocket payload.

Key Takeaways
  • Multiple editors on one document with sub-second op delivery.
  • Every operation validated against ACL — UI bypass must not grant edit access.
  • Presence (cursors, typing) is ephemeral; document content is durable.
  • Large assets (images, fonts) bypass the collab server — direct to object storage.
  • Offline edits queue locally and merge on reconnect.
  • Export/render is async — separate from the live editing hot path.
requirementsWebSocketACLOTCRDTpresence