At-least-once delivery requires idempotent task design
infoconfigurationUpdated Dec 28, 2021(via Exa)
Technologies:
How to detect:
Dramatiq provides at-least-once delivery semantics, meaning tasks may be executed multiple times due to connection failures, timeouts, or worker restarts. This is by design and cannot be avoided without sacrificing delivery guarantees.
Recommended action:
Design all Dramatiq tasks to be idempotent so that re-execution produces the same result without side effects or data corruption. Document this requirement for all task developers. Consider using database constraints, unique keys, or explicit deduplication logic to prevent duplicate processing effects.