Design a Collaborative Doc + Database Platform

Problem

Design Coda's platform: collaborative docs that act like apps (text + tables + formulas + automations) edited in real time.

Requirements

Functional:

  • Real-time collaborative editing of doc + tables
  • Formula recomputation on data change
  • Automations/buttons that mutate data
  • Views and permissions

Non-functional:

  • Many collaborators per doc
  • Fast recompute and sync
  • Reliable automation execution

Discussion points

  1. Block/table data model
  2. Formula dependency graph + recompute
  3. Real-time sync (OT/CRDT)
  4. Automation execution engine
  5. Permissions and scaling
added …
LeaderboardSalaryAccount