Cooldown and mute
One bad deploy posts once. Not three hundred times.
Every subscription has its own cooldown window (0 to 86400 seconds) so a flood of repeated events collapses to a single notification, and a muted_until timestamp so on-call handoffs and maintenance windows are one click away. Per-user controls live alongside per-project ones, so muting your phone for the weekend does not change anyone else's pager.
Ships with
- cooldown_seconds: drop events that arrive within N seconds of the previous matching event for the same subscription
- muted_until: hard-mute until a timestamp; the subscription resumes automatically when the window expires
- Per-user personal subscriptions with their own cooldown and mute, independent of team channels
- PagerDuty dedup_key collapses repeat firings of (project, trigger, task_id) into one incident upstream
- Backpressure-safe dispatch: bounded outbound concurrency (16 per event batch) keeps fan-out from stalling the WebSocket router
Highlights
- Cooldown evaluated before dispatch, so dropping costs essentially nothing
- 256-task pending cap on the dispatch queue protects z4j under burst load
- Per-IP rate limit on test, import, and bulk endpoints stops accidental amplification
Related