Interaction between cluster processes (messaging, broadcasting, locks etc)

npm install cluster-hub
1 downloads in the last day
12 downloads in the last week
46 downloads in the last month


A layer for communcation between master and worker processes


npm install cluster-hub

Getting started

var Hub  = require('cluster-hub');
var cluster = require('cluster');
var hub = new Hub(cluster);

if (cluster.isMaster) {
    // in master process
    hub.on('sum', function (data, sender, callback) {
        callback(null, data.a + data.b);

    var worker = cluster.fork();
} else {
    //in worker process
    hub.requestMaster('sum', {a: 1, b:2}, function (err, sum) {
        console.log('Sum in worker: ' + sum);

Simple message sending

hub.sendToMaster(message, data);  //works from workers and master
hub.sendToWorker(worker, message, data);  // works from master
hub.sendToWorkers(message, data);


Requests between master and workers (with callback)

Same as simple messaging, but you can provide a callback

hub.requestMaster(message, data, callback);  //works from workers and master
hub.requestWorker(worker, message, data, callback);  // works from master

Example in "Getting Started" section, and here:

Exclusive Locks

This module provide a way to get global exclusive lock between all processes (master and workers). If worker process dies while holding locked section - lock will be released automatically.

// this method available in master and in workers
hub.lock(lockKey, function(unlock) {
    // exclusive lock here
   // to unlock - call unlock()



More examples here:

npm loves you