Post-production jobs (assembly, mixes, enhancement, transcription — server/src/jobs/) run in an in-process queue inside the API server. Restarting the server mid-job loses the job; heavy ffmpeg work competes with request handling.
Proposal
- Extract the queue behind a small interface (enqueue, retry, status) — the current in-process implementation stays the zero-dependency default.
- Optional Redis-backed driver (e.g. BullMQ) via env, enabling a separate worker process (
node server/dist/worker.js).
Done when: with the Redis driver enabled, killing the server mid-processing and restarting resumes/retries the job, and the session page reflects accurate track status throughout.
Post-production jobs (assembly, mixes, enhancement, transcription —
server/src/jobs/) run in an in-process queue inside the API server. Restarting the server mid-job loses the job; heavy ffmpeg work competes with request handling.Proposal
node server/dist/worker.js).Done when: with the Redis driver enabled, killing the server mid-processing and restarting resumes/retries the job, and the session page reflects accurate track status throughout.