Design a Code Hosting / Notifications System
Problem
Design a core GitHub subsystem: the notifications/activity feed delivered when repos, issues, and PRs change.
Requirements
Functional:
- Notify subscribers on repo/issue/PR events
- Per-user inbox with read/unread
- Configurable subscription rules
- Email/web/push delivery
Non-functional:
- 100M+ users, huge event volume
- Timely delivery
- No lost notifications
Discussion points
- Event ingestion and fan-out (write vs read)
- Subscription model and filtering
- Inbox storage and pagination
- Multi-channel delivery (web/email/push)
- Deduplication and back-pressure
added …