node package manager


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


A layer for communcation between master and worker processes

npm install cluster-hub
var Hub  = require('cluster-hub');
var cluster = require('cluster');
var hub = new Hub();
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);
hub.sendToMaster(message, data);  //works from workers and master 
hub.sendToWorker(worker, message, data);  // works from master 
hub.sendToWorkers(message, data);


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:

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: