IntermediateSystem-Design
30 min
Design a Multi-Channel Notification Service
MessagingReliabilityUser PreferencesCompliance
Advertisement
Interview Question
Design a service to send notifications via email, SMS, and push at scale with retries, templates, and user preferences.
Key Points to Cover
- APIs: enqueue/batch send, status callbacks, idempotency
- Routing: provider selection, fallbacks, cost/latency-based routing
- Templates/localization, user preferences and quiet hours
- At-least-once delivery with dedupe; DLQs and retries
- Compliance: unsubscribe, GDPR/PII handling, audits
Evaluation Rubric
Clear producer/consumer APIs and idempotency25% weight
Smart channel/provider routing with fallbacks25% weight
Retries, DLQs, and delivery semantics25% weight
Preferences and compliance considerations25% weight
Hints
- 💡Consider per-tenant rate limits and budgets.
Common Pitfalls to Avoid
- ⚠️Underestimating the complexity of asynchronous processing and message queue management.
- ⚠️Lack of robust error handling and retry strategies across all layers, leading to message loss.
- ⚠️Failing to design for provider outages and not implementing effective fallback mechanisms.
- ⚠️Inadequate user preference management, leading to user frustration and opt-outs.
- ⚠️Neglecting comprehensive logging and auditing, which is critical for compliance and debugging at scale.
Potential Follow-up Questions
- ❓How do you prevent duplicate sends?
- ❓How to track delivery status uniformly?
Advertisement