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 при сбое провайдера.
  • Наблюдаемость доставки и открытий.