core practice · coding problem
At-least-once job delivery
Worker crashes after processing but before ACK. What happens on redelivery? How make handler safe?
The mechanism
Background jobs move slow work off the request so the user gets a fast response. The hard parts are idempotency (what if the job runs twice?), retries (transient errors vs permanent ones), and visibility (where did my job go?).
Expected evidence
Duplicate delivery; handler must be idempotent or use dedupe keys.
Try this drill in the practice workspace →
Hints when you need them
- ACK after side effects = loss risk.
- ACK before = duplicate risk.