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

Многоканални известия с автоматичен fallback

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

Платформа за резервации трябваше да информира потребители и обекти за статуси на поръчки, отмени и събития през различни канали — без брокер на опашки и без ръчно изпращане.

Ограничения

В стека нямаше готови опашки (Redis/RabbitMQ) — само база данни и polling; част от каналите (WhatsApp) не гарантират доставка и изискват резервен канал.

Какво направих
  • Единен domain слой за известия: ~30 сценария (поръчка, статус на резервация, отмяна на събитие и др.) с избор на канал
  • Fallback верига WhatsApp → SMS: неуспешно изпращане през WhatsApp автоматично се повтаря през SMS
  • Push известия чрез Firebase с автоматично изчистване на невалидни токени на устройства
  • Telegram бот като отделен интерактивен канал върху същия domain модел на събития
  • Rate-limiting и дедупликация на изпращането, известия до администратори при откази на канал
Архитектура
Domain събитие Опашка за известия (база данни) Polling демони WhatsApp → SMS fallback Push / Telegram / Email
Резултат

Известията за 15+ бизнес сценария преминаха през единна точка с автоматичен fallback между каналите и минимална ръчна поддръжка.

Какво може да се преизползва
Domain събитие → опашка → polling демон с fallback между канали Автоматично изчистване на невалидни push токени Rate-limiting за изпращане на чувствителни известия (кодове за потвърждение)