Design a Work-Management Platform With Search

Problem

Design Asana's work-management platform storing projects, tasks, and dependencies, with search over large data.

Requirements

Functional:

  • Projects, tasks, assignees, custom fields
  • Task dependencies and status
  • Full-text + filtered search
  • Real-time updates to collaborators

Non-functional:

  • Millions of users/teams
  • Fast search and filters
  • Real-time collaboration

Discussion points

  1. Data model for tasks/projects/custom fields
  2. Dependency graph storage
  3. Search index (filters + full text)
  4. Real-time update fan-out
  5. Permissions and multi-tenancy
added …
LeaderboardSalaryAccount