API и интеграции

4 мин чтения

Webhooks: почему системе выгоднее сообщить об изменении, чем ждать очередного вопроса

Если одной системе важно узнать, что произошло в другой, можно спрашивать об этом каждую минуту. А можно получить уведомление сразу после события. Webhooks строятся вокруг второго подхода.

Представим интернет-магазин, которому нужно узнать статус оплаты. Самый прямой путь — регулярно спрашивать платёжную систему: «оплачено?», «а теперь?», «а сейчас?».

Так работает polling. Он прост, но создаёт постоянный трафик и всё равно оставляет задержку между событием и реакцией.

Webhook меняет направление: система, где произошло событие, сама вызывает заранее известный адрес получателя.

Какую проблему мы решаем

Webhook позволяет передать факт изменения почти сразу: платёж прошёл, заказ отправлен, документ подписан, пользователь зарегистрирован.

Получателю не нужно постоянно проверять состояние. Он реагирует только тогда, когда действительно что-то произошло.

Что получает бизнес

Главная выгода — меньше задержки между событием и следующим бизнес-действием.

Оплата может быстрее перевести заказ в обработку, новый лид — попасть в CRM, завершённая доставка — запустить уведомление клиенту.

Одновременно снижается количество пустых запросов между системами. Это особенно заметно при большом числе интеграций и объектов.

Webhooks также помогают быстрее подключать внешние сервисы, если обе стороны договариваются о понятных событиях вместо постоянного доступа к внутреннему состоянию.

Что получает команда

Команда получает более событийную модель интеграции и меньше необходимости писать циклы опроса.

Но появляется ответственность за доставку. Получатель может быть временно недоступен, ответить ошибкой или обработать одно и то же уведомление дважды.

Поэтому нужны повторные попытки, подписи запросов, idempotency и журналирование.

Что получает клиент

Клиент чаще замечает не сам webhook, а более быстрый процесс: оплатил — статус обновился; подписал — документ появился; доставка завершена — уведомление пришло.

Чем меньше промежуток между реальным событием и отражением в продукте, тем меньше ощущение, что системы живут каждая своей жизнью.

Чем мы за это платим

Цена — менее простой контроль доставки.

HTTP-вызов не гарантирует, что бизнес-событие обработано ровно один раз. Нужно решать, сколько раз повторять запрос, как хранить историю, как защищаться от поддельных уведомлений и что делать с событиями, которые так и не удалось доставить.

Когда Webhooks не нужны

Если данные меняются редко, задержка не критична, а интеграция очень простая, периодический polling может оказаться дешевле и понятнее.

Webhook имеет смысл тогда, когда скорость реакции и количество проверок действительно становятся заметной проблемой.

Что стоит спросить перед решением

В итоге

Webhook — это простой сдвиг: не спрашивать состояние бесконечно, а сообщать об изменении тогда, когда оно произошло.

Для бизнеса ценность в том, что процессы реагируют быстрее и тратят меньше ресурсов на бессмысленные проверки.