Launch clustered services using node clustering and monitor them

Usage no npm install needed!

<script type="module">
  import restorecommerceClusterService from 'https://cdn.skypack.dev/@restorecommerce/cluster-service';



Build StatusDependenciesCoverage Status

A service launcher supporting two modes, development and production.

In development mode (default), forever-monitor is used to launch a single instance and keep it alive.

In production mode, recluster is used to launch a node.js cluster of a given service. A PID file is created in os.tmpdir() with the file name ${pidDir}/cluster-serverice-master-${serviceName}.pid. By default, as many workers are stated as CPU cores can be detected. The cluster also listens to SIGUSR2 and SIGTERM signals.


const cluster = new ClusterServer(options);


  • logger Winston compatible logger like Restore Logger.
  • serviceName [srv] name of the service (used to build PID file ).
  • mode [development] the mode name, development or production.
  • pidDir [os.tmpdir()] Directory where to store the PID file .
  • workerCount [number of cores] The number of workers to launch in production mode.
  • nodeOptions [] command line options to node for development mode.