Engineering notes

Notifier delivery rework

Replace the shared fixed retry ceiling with a per-destination delivery budget.

Draft · target 2026.10 · owner: rk

Problem

The retry ceiling is global and fixed. One destination in a long outage consumes attempts that were never shared with anyone else, but the ceiling is reached per-delivery, so the effect is that every message to that destination is dead-lettered at the same shallow depth. The August backlog is the worked example: four attempts covered nine minutes of a seven-hour outage.

Raising the ceiling to six bought forty minutes. Raising it further trades one failure mode for another — a destination that is down for a day would hold retries open long enough to matter to everything else on the worker pool.

Proposal

Each destination gets a delivery budget replenished over time. A delivery consumes budget on failure. When the budget is exhausted the destination is marked failing and its traffic is parked rather than dead-lettered — parked traffic replays automatically when the destination recovers.

BehaviourTodayProposed
Retry depthFixed, sixBudget-driven, per destination
After exhaustionDead-letterPark, with automatic replay
Blast radiusShared worker poolIsolated per destination
Operator actionManual replayNone in the recovery case

Open questions

Not in scope

Delivery ordering. It is not guaranteed today and this does not change that, though parking makes the lack of a guarantee more visible than it currently is.