Один Telegram‑бот, три сервиса, один 301: как я сделал webhook‑router вместо монолита
<img src="https://habrastorage.org/getpro/habr/upload_files/25c/f2d/608/25cf2d608714a5f1e10ff018a3afb484.png" /><p>У Telegram-бота может быть только один активный webhook. У меня при этом появились три независимых сценария: поддержка пользователей, управление небольшим магазином и внутренние административные команды. Склеивать их в один процесс не хотелось, заводить отдельного бота под каждый сервис — тоже.</p><p>Пока я выбирал архитектуру, переезд панели с одного домена на другой неожиданно провёл бесплатный chaos test: Telegram продолжил отправлять updates на старый адрес, получил <code>301 Moved Permanently</code> и перестал доставлять сообщения. В очереди зависло шесть updates, а со стороны пользователей бот просто замолчал.</p><p>В статье разберу диагностику этого инцидента и устройство небольшого open-source router на FastAPI и Redis: с декларативными правилами, дедупликацией, надёжной очередью, retry и HMAC-подписью внутренних запросов. </p> <a href="https://habr.com/ru/articles/1078924/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1078924#habracut">Читать далее</a>
