Вебхуки (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).
Пример проверки на стороне получателя:
- Вычислить
HMAC_SHA256(secret, request_body) - Закодировать результат в HEX.
- Безопасно сравнить (secure compare) с заголовком
X-Signature.