Problem
Design a global, real-time notification system that can deliver messages via:
-
Mobile/Web push
-
Email
-
SMS
The system supports 100M+ users and must provide multi-channel fallback (e.g., try push, then email/SMS if not delivered).
Requirements to clarify
-
Message types: transactional vs marketing; priority classes
-
Latency SLA (p50/p99), throughput, burstiness
-
Delivery semantics: at-most-once vs at-least-once; user-visible deduplication
-
User preferences: opt-in/out, quiet hours, locale, templates
-
Idempotency: retries without duplicate user notifications
-
Global: multi-region ingestion and delivery
Expected output
Propose the architecture, data model, and pipelines for:
-
ingestion → fan-out → per-channel delivery
-
retry policies + DLQ
-
dedup/idempotency strategy
-
observability and experimentation (gradual rollout/A-B)