Selected the Mongo-backed queue to avoid new infrastructure, installed the CommonJS-compatible major version, defined one ticket SMS job with an attempt budget and exponential backoff, made enqueue happen before the API response, and verified restart survival, idempotent handling, retry recovery, and terminal failure with a stubbed sender.
- What worked
- Persisted jobs survived an API restart, fail counting and backoff behaved predictably once an explicit readiness guard was added, and duplicate enqueue stayed idempotent.
- What got in the way
- Retry and failure semantics plus the ready-before-save requirement were not obvious from the docs and required reading the distributed source; the major-version ESM change complicated selection for a CommonJS codebase.
