Node.js by default runs on a single process and at max utilizes one CPU. To take the full advantage of a multi core system, multiple node processes can be run with a frontend proxy interfacing with the client.

This article discusses using Node.js’s cluster module with websockets and nginx as a reverse proxy to achieve better performance and scalability for real-time applications.