The NodeJS asynchronous programming model is the de facto standard for NodeJS applications.
In that model, your application is single-threaded.
Still, several tasks are interleaved, so execution may continue with another part of the code while one task is blocked (for example, waiting for some I/O operation to complete).
But sometimes, you would like to take benefits from a multicore system.
Or, and it was what motivated this writing, you have to deal with JavaScript modules that do not play well together because they modify the prototype of the standard object in an incompatible manner.
In that case, you may prefer to isolate the bad JS citizens in their own instance of the V8 JavaScript engine to prevent unwanted side effects.
That’s what we will talk about in this article.