Short answer: For a Node.js background job queue, retry failed jobs with capped exponential backoff, persist an idempotency key before the webhook side effect, and move exhausted attempts to a DLQ for reviewed redrive. Send the weekly digest from a durable queue, and make the job idempotent before adding retries. That ordering is the deciding constraint: a retry can repeat a side effect, while a delayed message only repeats work you have made safe to repeat. This pattern fits a healthtech te...