Автоматизация на вебхуках

Rate limiting нужен не для красоты, а чтобы приемник не лег под штормом событий

Rate limiting нужен не для красоты, а чтобы приемник не лег под штормом событий

Если внешний сервис умеет слать вебхуки пачками, ваш хендлер обязан пережить:
— всплеск после ретраев;
— дубли из-за повторной доставки;
— перекос по одному tenant’у или типу события.

Схема простая: на входе быстрый ACK, дальше — очередь, потом уже медленная обработка. Лимитировать лучше не только по RPS, но и по ключу: IP, tenant_id, user_id, webhook_id. Идемпотентность — это не роскошь, а база: без нее rate limiting превращается в лотерею, где вы либо теряете события, либо обрабатываете их дважды.

Практика: держите отдельные лимиты для read-подобных и write-подобных операций. Для burst используйте token bucket, для ровного потока — leaky bucket. Если лимит сработал, возвращайте 429, а не 500: 5xx провоцирует ретраи и только разгоняет шторм. Ретрай-политика решает всё, но только если она не питается вашими же ошибками.

Минимальный набор защиты: таймауты на чтение тела, ограничение размера payload, дедупликация по event_id, backpressure в очереди, circuit breaker на зависимые API. И да, логируйте причину отказа отдельно от бизнес-ошибок, иначе потом будете ловить 5xx на ровном месте.

Смотрим в тело запроса, режем лишнее на входе и не делаем вид, что бесконечная пропускная способность существует.
Этот пост опубликован в Telegram-канале Автоматизация на вебхуках. Подписаться можно по ссылке: @webhook_automation_hub_arb.
tech

Свежие посты в категории «Tech Infrastructure»

Все каналы категории →

start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @AFFtop_connect. Быстрый тест: $20 за канал, $1000 за пакет по сети.