Словарь
Webhook
Webhook – это механизм HTTP-обратного вызова, который позволяет одной системе отправлять данные другой в реальном времени всякий раз, когда происходит определённое событие. В отличие от традиционного опроса API (polling), когда ваше приложение снова и снова спрашивает сервер, не изменилось ли что-нибудь, webhook работает по push-модели: система-источник отправляет HTTP POST-запрос на указанный вами URL в момент наступления события. Это избавляет от лишних запросов, снижает нагрузку на сервер и обеспечивает практически мгновенное событийное взаимодействие между приложениями.
Webhook лежат в основе современной веб-архитектуры, потому что связывают сервисы, которые изначально не проектировались для совместной работы. Платёжные системы вроде Stripe отправляют webhook, когда платёж прошёл, не удался или оспорен, и ваше приложение может обновить статус заказа без постоянного опроса Stripe API. Системы управления контентом вызывают webhook при публикации или обновлении материалов, запуская пересборку статического сайта или инвалидацию кеша. CI/CD-конвейеры используют webhook от платформ контроля версий, таких как GitHub, чтобы запускать автоматические сборки и деплой при каждом пуше кода в репозиторий.
Корректная реализация webhook требует внимания к надёжности и безопасности. Поскольку webhook – это, по сути, входящие HTTP-запросы от внешних сервисов, нужно проверять, что каждый запрос действительно пришёл из ожидаемого источника, обычно через валидацию криптографической подписи в заголовках запроса. Также необходимо корректно обрабатывать сбои: если ваш эндпоинт временно недоступен, вы пропустите события, если отправляющий сервис не повторит доставку. Большинство хорошо спроектированных систем webhook включают логику повторов с экспоненциальной задержкой, а принимающее приложение должно быть идемпотентным – то есть способным безопасно обработать одно и то же событие несколько раз, не создавая дублирующих записей или побочных эффектов.