The Webhooks Disabler
A gen_server
is started to monitor the webhook attempts that fail and to auto-disable any webhook that fails “too often” (defined later).
When an HTTP request is made to the configured webhook’s uri
, any non-200 response and any connectivity errors are treated as a failure and added to the webhooks_cache
cache. It includes the AccountId
, HookId
, and Gregorian milliseconds timestamp of when the failure occurred.
Failure settings
-
attempt_failure_expiry_ms
: Failure cache entries are kept in cache for value ofattempt_failure_expiry_ms
. It can be defined in the account’s config doc (config_webhooks
) orsystem_config/webhooks
. It defaults to60000
or 60 seconds. -
attempt_failure_count
determines how many failures within theattempt_failure_expiry_ms
window constitue “too often”; webhooks exceedingattempt_failure_count
in that time period are automatically disabled. It can be defined in the account’s config doc (config_webhooks
) orsystem_config/webhooks
. It defaults to6
.
Using the defaults, then, means any webhook that fails 6 times within a minute should be auto-disabled.
Disabler Run
Given the system_config
value of attempt_failure_expiry_ms
, the disabler will run a check every attempt_failure_expiry_ms div 4
(default of 60s means a check every 15s).