Skip to content

Вебхуки (Webhooks)

RUSEON Core может отправлять HTTP POST запросы на настроенные URL при возникновении определенных системных событий.

Конфигурация и поведение

  • Метод: HTTP POST
  • Таймаут: 3 секунды на запрос.
  • Повторные попытки (Retries): Явных повторных попыток для каждого события нет. Доставка осуществляется по принципу best-effort.

Очереди (Queueing)

Вебхуки обрабатываются воркерами (goroutines) с размером очереди 1000 событий на воркера. Если очередь переполняется (например, из-за медленного принимающего сервера), новые события отбрасываются (политика drop-newest).

  • Отслеживать отброшенные события можно через метрику Prometheus: ruseon_eventbus_drops_total.

Circuit Breaker (Предохранитель)

Чтобы предотвратить каскадные сбои, отправитель вебхуков реализует паттерн circuit breaker для каждого URL:

  • Если отправка на URL повторяется с ошибками, цепь размыкается на 30 секунд.
  • В течение этого 30-секундного окна запросы на этот URL не отправляются (события сразу отбрасываются).

Безопасность

Если настроен секрет вебхука (webhook secret), RUSEON включает заголовок X-Signature, содержащий HMAC SHA-256 подпись полезной нагрузки (payload).

Пример проверки на стороне получателя:

  1. Вычислить HMAC_SHA256(secret, request_body)
  2. Закодировать результат в HEX.
  3. Безопасно сравнить (secure compare) с заголовком X-Signature.

Released under the MIT License.