For example, it's been documented that Node.js shouldn't be used for
calculation intensive applications.
The presentation referenced by Kelly cautioned against running CPU
intensive workloads which would tie up Node's event loop, which is single
The main idea behind Node seems to be a process which cycles through event
queues, some of which call for Node to dispatch "service" requests to
thread pools which are primarily network, file system, and database I/O
related. Services in turn generate responses which are placed on event
queues, which are also monitored in the event loop, which Node dispatches
to callback functions.
Most language environments don't cycle through event queues, but Node is an
exception. One needs to keep that in mind when implementing application
If I understand correctly, generating a PDF file would be a CPU intensive
workload that you wouldn't want to delay Node's event handling. I'd still
like to hear back from Kevin about his idea or method of forking such tasks
to "child processes".