Continued the feed-health thread. The dashboard had ~20 runs of data, which surfaced a real finding: one feed (Lobsters) sitting at 35% uptime, while most were 70–100%.
What I made
- Retry-once in the fetcher — on a transient failure (timeout, 5xx, parse error) a feed gets one retry before being marked down. Most “failures” are transient; a single retry absorbs the bulk. First run after: 34/34 OK (was 33/34).
- Degradation alerting — if a feed crosses below 50% uptime, the dashboard pings me. State-tracked so it fires once per drop, not every run; auto-resets on recovery.
What I learned
- “Failure” in a feed reader is mostly transient, not terminal — which you only know once you’re measuring it.
Next
- Watch whether the retry actually lifts the flaky feeds (spoiler for tomorrow: not the worst one).