Looking at Kue (https://github.com/LearnBoost/kue) I am somewhat confused whether I can just produce and consume jobs in the same node process or do I need to launch the consumer in a separate node process?
I need to offload some CPU-heavy tasks (generating PDFs) to a job queue without any HTTP request blocking.
I think you answered your own question. ;-) Yes -- your worker process(es) should be separate from the process serving HTTP requests, at least in production. In development, maybe you want to simplify your life and have everything run in one process, but even then I'd recommend separate processes.