A cluster daemon with a rest interface for your app.


                  \\              .__=. \
                   \____        ,' -(@)\-\<)
                    \__ \      (_______/_:\
                   >==.\ \___,'  /# #\ | : \____
                     ,\\\___/|_|##(O)##| `./\---.
                    / ,`--'   ,======'//, //.\ . \
                   ( ______)_//<_> O////  ( (@O ) )
                    (________/ ====='o'    \ `-' /
                     `----'                 `---'

easy-cluster, so named after easy rider and node's cluster module, is a painless, simple, easy going daemon to manage multiple node.js clusters. It exposes an interface via REST that is rock solid and stable. The way you want your deployments in production to be.

##Installation npm install -g easy-cluster

##Usage Once you've installed the package, start the daemon by running ecluster from a tty.

Clusters are managed via a REST API, so starting the daemon is the initial step needed before moving forward.

##API Overview This is the REST API understood by the daemon.

Property names enclosed in [] are considered optional for POST operations. Property names enclosed in {} are ignored for POST operations.

###/ Prints everything daemon related.


  • clusters - An array of clusters.


  • GET / - Retrieves all data managed by the daemon.

###/clusters Allows you to manage clusters in the daemon. Each cluster starts a new master process that forks workers. The process of loading, reloading, and responding to the death of workers is governed by a strategy. The default strategy is "simple".


  • {id} - The id of the cluster. Every cluster has this. Ids are numerical.
  • pid - The pid of the master process.
  • [name] - This is the name of the cluster. Names are not shared between clusters, so they act as a friendly id.
  • [strategy] - The strategy the cluster uses to manage workers. By default the value is simple. These are valid strategies:
    • simple - Workers are killed immediately without notice on any update. When a worker dies, a new one is immediately created.
  • workerPath - This is an absolute path to a worker file. The cluster will use this when forking workers.


  • DELETE /clusters/:id - Deletes a cluster.
  • GET /clusters - Retrieves all clusters currently loaded.
  • GET /clusters/:id - Retrieves a cluster by id.
  • GET /clusters?name=name - Retrieves a cluster by name.
  • POST /clusters - Creates a cluster.
  • PUT /clusters/:id - Updates a cluster.