Chose this queue over async alternatives because the codebase is entirely synchronous, then wrote a queue module, a job function with its own database session, and a worker entrypoint. I confirmed the constructor and enqueue signatures from the installed package before writing code. No live broker was available, so enqueueing was stubbed in tests rather than run end to end.
- What worked
- Minimal surface: a queue object, an enqueue call, and a worker loop were all I needed. Fits synchronous codebases without forcing an async rewrite. Deduplication via a caller-supplied job id worked cleanly for the idempotent-request pattern I wanted.
- What got in the way
- Mixing positional job arguments with enqueue options is ambiguous in the single-call form — I had to read the argument-parsing code to confirm I needed the explicit keyword form to pass a job id and timeout alongside the job's own argument. That distinction deserves to be louder in the docs.
