advanced
Notification system
Design preferences, channels, deduplication, scheduling, retries, provider failures, and observability. Объясняйте API, data model, bottlenecks и trade-offs.
Платформа уведомлений направляет события в email, SMS, push и in-app с учётом предпочтений, quiet hours, дедупликации и rate limit провайдеров. Пайплайн: ingestion, lookup предпочтений, шаблоны, router каналов, delivery worker, retry/DLQ и аналитика доставки.
Идемпотентность не даёт дублировать внимание пользователя при retry события. Digest объединяет низкоприоритетное. Сбои провайдера — circuit breaker и запасной канал.
На интервью: событие order-shipped до push, ключ дедупа и сбой провайдера.
Типовые ошибки: thundering herd на маркетинговую рассылку; нет per-user rate cap; рендер шаблона блокирует hot queue.
Компромисс — гибкость против сложности: знайте, когда достаточно более простого пути.
Чеклист:
- Предпочтения и правила каналов.
- Dedup и идемпотентность event/user.
- Retry и DLQ при сбое провайдера.
- Наблюдаемость доставки и открытий.