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
- Data model for tasks/projects/custom fields
- Dependency graph storage
- Search index (filters + full text)
- Real-time update fan-out
- Permissions and multi-tenancy
added …