We are building an infrastructure which features a Node.js server and Express.
In the server, what is happening is as follow:
(Answering my own question)
According to this question on Stack Overflow a solution in my case would be to implement a queue using Caolan McMahon's async module.
The main application will create jobs and push them into a queue, which has a limit on the number of concurrent jobs that can run. This allows processing tasks concurrently but with a strict control on the limit. It works like Cocoa's NSOperationQueue on Mac OSX.