The premise
Background jobs need to be designed around the assumption that a task can be retried, delayed, or observed twice.
Working through it
A useful baseline is an idempotency key, bounded retries, and a dead-letter route that makes failed work visible instead of silent. Those pieces turn an unreliable queue consumer into a system with an understandable recovery path.
Current takeaway
Before adding more infrastructure, make the job state inspectable. Knowing what ran, what failed, and what can be safely retried is more useful than a complex workflow with no operational story.