Poller heartbeat / dead-man's-switch #77
Labels
No labels
area:ai
area:ci-cd
area:notifications
area:observability
area:public-pages
backlog
bug
duplicate
enhancement
help wanted
invalid
question
type:decision
type:feature
type:infra
type:maintenance
type:security
v1.0.1
v1.1.0
v1.2.0
v1.3.0
v2.0.0
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
rbrooks/WeatherBot#77
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The scariest failure for an alerting app isn't a wrong alert — it's silence nobody notices. If
poll_alerts_jobdies (or the whole app is down), no one is told; users assume no weather. Add a watchdog that alerts an admin channel when there's been no successful NWS poll in N minutes, plus an optional external ping (healthchecks.io-style) so an app that's fully down still trips an out-of-band alarm. Missed because "it just runs" — the failure is invisible until the day it matters. Effort S, value High. Pairs with I-03 (metrics) and I-04 (banner) — together they're the observability milestone's real point.Filed from the 2026-07-17 codebase audit (
docs/.internal/report-2026-07-17.md), finding I-07.Done in #96 (merged). Two layers: (1) an in-app watchdog (
heartbeat_watchdog_job) that alerts admins when there's been no successful NWS alert poll withinHEARTBEAT_STALE_MINUTES(debounced); (2) an optional external heartbeat — after each successful poll it fire-and-forgets a GET toHEARTBEAT_PING_URL(healthchecks.io-style), so a fully-down app is caught out-of-band when the pings stop. Both disabled by default until configured.