Интеграции · известия · 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 за изпращане на чувствителни известия (кодове за потвърждение)