Design a notification service for email, SMS, and push
Reported in Celonis European engineering loops. System design problem testing reliability, fan-out, and channel abstraction.
Interview scenario
Context for Celonis candidates:
Build a service that sends transactional and marketing notifications across multiple channels.
Model answer
Try answering aloud first
Cover trade-offs, structure, and a concrete example before revealing the baseline response.
How to frame this at Celonis: Connect your answer to measurable impact, clarity of thought, and trade-offs the team cares about. Below is a strong baseline response you can adapt with your own project examples.
Start with a unified notification API that accepts user id, template id, channel preferences, and priority. Store request metadata, then publish to a queue so senders are decoupled from request latency.
Create channel-specific workers for email, SMS, and push with retry policies, rate limiting, and provider fallback. Track delivery states (queued, sent, failed, bounced) in an events table for observability and audit.
For scale, partition by tenant or user hash and enforce idempotency keys to avoid duplicate sends during retries. Mention user preference service integration for do-not-disturb and opt-out compliance.
Discussion
Comments (0)
Share how this question came up in your loop, or add tips for others preparing.
Log in to comment on this question.