Bird
Raised Fist0
HLDsystem_design~12 mins

Push notification integration in HLD - Architecture Diagram

Choose your learning style9 modes available
System Overview - Push notification integration

This system sends push notifications to users' devices. It must handle many users, deliver messages quickly, and retry if delivery fails.

Architecture Diagram
User Devices
    |
    v
+----------------+
| Push Service   |
| (API Gateway)  |
+----------------+
    |
    v
+----------------+
| Notification   |
| Dispatcher     |
+----------------+
    |
    v
+----------------+       +----------------+
| Message Queue  |<----->| Retry Service  |
+----------------+       +----------------+
    |
    v
+----------------+
| Push Provider  |
| (APNs/FCM)     |
+----------------+
Components
User Devices
client
Receive push notifications
Push Service
api_gateway
Accept notification requests from apps
Notification Dispatcher
service
Process and send notifications to message queue
Message Queue
queue
Buffer notifications for delivery and retries
Retry Service
service
Handle failed deliveries and retry sending
Push Provider
external_service
Deliver notifications to user devices (e.g., APNs for iOS, FCM for Android)
Request Flow - 6 Hops
User DevicesPush Service
Push ServiceNotification Dispatcher
Notification DispatcherMessage Queue
Message QueuePush Provider
Push ProviderRetry Service
Retry ServiceMessage Queue
Failure Scenario
Component Fails:Message Queue
Impact:Notifications cannot be buffered or retried, causing message loss or delivery delays
Mitigation:Use a replicated queue system with failover to ensure availability and durability
Architecture Quiz - 3 Questions
Test your understanding
Which component buffers notifications to handle delivery retries?
APush Service
BMessage Queue
CRetry Service
DNotification Dispatcher
Design Principle
This design uses a message queue to decouple notification creation from delivery. It improves reliability by buffering messages and enabling retries. External push providers handle device delivery, while internal services manage request intake and failure handling.