Один медленный webhook тормозит всех: как изолировать доставку без очереди на каждого получателя

Архитектура и масштабируемость

Бэкенд
Java
Бэкенд / другое
PostgreSQL
Распределенные системы

Программный комитет ещё не принял решения по этому докладу

Целевая аудитория

Middle+ backend- и platform-инженеры, архитекторы и SRE, которые строят multitenant-доставку webhooks и callbacks с порядком по ключу, длительными ретраями и независимостью потребителей.

Тезисы

AI-ассистенты стали одним из новых типов бот-интеграций, но инфраструктурная проблема для них та же, что и для обычных ботов: каждый webhook-получатель может отвечать медленно или быть недоступен. В общей очереди такой «шумный сосед» накапливает ретраи и задерживает сообщения для исправных потребителей. Отдельная физическая очередь на каждого получателя даёт изоляцию, но плохо масштабируется с ростом числа интеграций. На примере платформы ботов Яндекс Мессенджера я покажу, как мы проектировали переход от общей очереди к логической изоляции по бизнес-ключу бот × чат. В докладе разберу, почему единица отказа и единица порядка не обязаны совпадать: webhook конкретного бота может отказать целиком, а порядок сообщений требуется сохранять внутри его отдельного диалога. Такая граница позволяет разделять ретраи независимых потребителей и параллельно обрабатывать независимые ключи без отдельной физической очереди для каждого из них. Разберём, какой внутренний механизм поставить за webhook-доставкой: брокер сообщений, персистентный планировщик отложенных задач или их комбинацию. Покажу требования и критерии выбора, поэтапную миграцию работающего сервиса, ограничения и цену выбранной архитектуры. Слушатели получат практическую схему: как выбрать границу изоляции, совместить порядок с параллельной обработкой и снизить влияние «шумных соседей» без взрывного роста инфраструктурных сущностей.

7 лет опыта. Сейчас руководит командой бэкенда интеграционной платформы Яндекс Телемоста.

Видео

Другие доклады секции

Архитектура и масштабируемость