Skip to content

Backpressure

When a downstream returns 429, 503, or 529, your work didn't fail — it was rate-limited. SimpleQ models this as defer: the job is held, redelivered after a delay, and no attempt is burned. The maxAttempts budget is spent on real failures only, so a job can be deferred indefinitely against a sustained rate limit and still complete the moment capacity returns.

Stub

This page is a stub. Recipes are linking to it. Real content lands soon.

TODO — content

  • Defer as the third ack-channel outcome alongside ack and nack.
  • Relaying a downstream Retry-After (seconds) verbatim to /defer.
  • 529 as first-class backpressure (no trustworthy Retry-After, use a fixed delay).
  • Why defer doesn't burn an attempt, and the implication for maxAttempts sizing.
  • The same mechanism in the webhook path: a 429 / 503 / 529 HTTP response from the webhook is treated identically — one mechanism, two trigger surfaces.