Skip to content
Worker process coordinator for Node.JS clusters
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.gitignore Version bump Sep 22, 2013


Worker process coordinator for Node.JS clusters. It used the built in cluster module to fire up multiple node processes and coordinates the work between them.


npm install usta


usta has 2 different interfaces, one for the master process and one for the worker processes. The basic idea is to have multiple pools of processes. One can define a pool for web server that contains 4 child processes, a single process for background jobs and 2 more for work queue consumers easily.


var usta = require('usta');

if (usta.isMaster) {
    // Necessary
    // Setup the cluster master
        silent: false, // Suppress child process output, default false
        exec: __filename, // The entry point for workers, if not specified, current file is used
        logger: function(log) {…} // A function to intercept logs. Defaults to stdout.

    // Create a new worker pool
    // poolname is required, all config vars are optional, default values are listed below.
    // usta.pool(poolname, options)
    usta.pool('web', {
        ttl: 0, // Time in ms to recycle processes. Children will be restarted in this period.
        size: 0, // Number of child processes required for this pool
        args: {}, // Custom arguments to be sent to children
        env: {}, // Custom environment variables
        strict: false, // If true, pool does not have more than size processes in any case
        killDelay: 60000, // Wait time in ms to forcefully kill a process that does not gracefully exit
        restartDelay: 2000 // Wait time in ms for consecutive restarts

    // Create another pool
    usta.pool('crons', {


var usta = require('usta');

if (!usta.isMaster) {
    // All workers are created equal, therefore it is required to distinguish pools here.
    // Register a function to be called for web workers
    usta.register("web", function() {
        // do whatever you wish

    // Register another type of worker
    usta.register("crons", function() {
        // do whatever you wish



Something went wrong with that request. Please try again.