Перейти к содержимому
N1
Интеграции · уведомления · fallback между каналами

Мультиканальные уведомления с автоматическим fallback

Клиент: NDA Категория: Интеграции Стек: PHP (собственный backend), Firebase (push), Telegram Bot API, WhatsApp/SMS-провайдеры, PHPMailer Срок: 3–5 недель
Проблема

Платформе бронирования нужно было информировать пользователей и площадки о статусах заказов, отменах и событиях по разным каналам связи — без брокера очередей и без ручной рассылки.

Ограничения

В стеке не было готовых очередей (Redis/RabbitMQ) — только БД и polling; часть каналов (WhatsApp) не гарантирует доставку и требует резервного канала.

Что сделал
  • Единый доменный слой уведомлений: ~30 сценариев (заказ, статус брони, отмена события и т.д.) с выбором канала
  • Fallback-цепочка WhatsApp → SMS: неудачная отправка через WhatsApp автоматически повторяется через SMS
  • Push-уведомления через Firebase с автоочисткой невалидных токенов устройств
  • Telegram-бот как отдельный интерактивный канал поверх той же доменной модели событий
  • Rate-limiting и дедупликация отправки, алерты администраторам при сбоях канала
Архитектура
Доменное событие Очередь уведомлений (БД) Polling-демоны WhatsApp → SMS fallback Push / Telegram / Email
Результат

Уведомления для 15+ бизнес-сценариев пошли через единую точку с автоматическим fallback между каналами и минимальной ручной поддержкой.

Что можно переиспользовать
Доменное событие → очередь → polling-демон с fallback между каналами Автоочистка невалидных push-токенов Rate-limiting отправки чувствительных уведомлений (коды подтверждения)