bugfree Icon
interview-course
interview-course
interview-course
interview-course
interview-course
interview-course
interview-course
interview-course

System Design Question

Design a Real-Time Notification System

bugfree Icon

Hello, I am bugfree Assistant. Feel free to ask me for any question related to this problem

Functional Requirements:

  • Users should receive real-time notifications for relevant events (e.g., messages, friend requests, system alerts).
  • Support for multiple notification channels (e.g., web, mobile push, email).
  • Each notification should be delivered to the correct user(s) based on their preferences.
  • Users should be able to mark notifications as read/unread and see their notification history.
  • The system should ensure notifications are not missed (reliable delivery, with retries if needed).
  • Notifications should be delivered with low latency (ideally within a few seconds).

Non-Functional Requirements:

  • Scalability: The system should handle spikes in notification volume (e.g., 10,000 notifications/sec at peak).
  • Availability: High uptime (99.9% or higher) so users do not miss important notifications.
  • Security: Only authorized users should receive their own notifications; data should be encrypted in transit.
  • Performance: Notifications should be delivered quickly, with minimal delay.
  • Durability: Notification data should be persisted for a reasonable period (e.g., 30 days) for user access and audit.
  • Extensibility: Easy to add new notification channels or event types in the future.

System Design Diagrams

Zoom In and Out via trackpad or posture