Skip to main content

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
Related

More capabilities