Durable bulk retry
Retry a thousand failures once, and only once.
A bulk retry is a durable request you can watch, not a fire-and-forget button. Submitting one commits the request identity, its audit row, and the complete per-task plan in a single transaction, so the work that will run is decided up front rather than re-derived later. Sending the same request again returns the original outcome instead of re-expanding the filter, which matters because the set of failed tasks keeps moving: a task that failed into range after your first attempt would otherwise be swept up by a retry you already believed was finished. Each task is claimed at its send edge under a parent-wide in-flight bound, so a large retry paces itself instead of stampeding the fleet.
Ships with
- A repeated request returns the original outcome and never re-expands the filter
- Request identity, audit row, and the full per-task plan commit atomically
- At-most-once progress: each task is claimed only at its send edge
- A parent-wide in-flight bound paces a large retry instead of flooding workers
- Pause a running retry, and resume it deliberately after it is blocked
- Late results refine an unknown outcome to succeeded or failed rather than guessing
Highlights
- Ambiguous claims are never silently returned to the pending set
- Progress, pause state, and per-task outcomes are visible from the dashboard