Design an Issue Tracker
MediumSystem design · Collaboration
Design an issue tracker like Jira or GitHub Issues. Teams create issues with custom fields, move them through configurable workflows, comment, and run saved filters and boards. A large instance has 10M issues. Cover the flexible data model for user-defined fields, the search/filter engine, workflow state machines, change history, permission-aware queries, and notification fan-out without noise.
Requirements
- Custom fields and workflows are defined per project at runtime, with typed values
- Filters over arbitrary fields must be fast, so a search index is required alongside the primary store
- Permissions are applied inside the query, not after results are returned
- Notify watchers without duplicate or per-field noise