0.2.3 • Published 10 years ago

bully v0.2.3

Weekly downloads
3
License
MIT
Repository
github
Last release
10 years ago

Bully

node.js module to elect a master peer in a distributed system. This module uses the Bully Algorithm for the election process. Unresponsive/offline peers will be recognized through heartbeat timeouts.

Usage

Install via npm:

npm install bully

Include in your project

var Bully = require('bully');

var opts = { id: "id", /* unique identifier of this peer */
             peers: [], /* event emitter instances of other peers */
             me: me /* event emitter instance of local peer */
           }

var bully = new Bully(opts);

bully.on("master", function () {
    console.dir('I am now the master');
});
bully.on("stepped_down", function () {
    console.dir('Unfortunately I had to step down from my responsibilities');
});

Adding a new peer

var EventEmitter = require('events').EventEmitter;

var peer = new EventEmitter();
peer.id = 'anoter_unique_id';

bully.addPeer(peer);

Remove peer

bully.removePeer("peers_unique_id");

Error handling

bully.on("error", function (err) {
    // handle error here
});

Errors:

  • Unknown Peer: triggered once a message is received from an unknown

Example

See example.js. Run with full debug information as follows:

DEBUG=bully npm test
0.2.3

10 years ago

0.2.2

11 years ago

0.2.1

12 years ago

0.2.0

12 years ago

0.1.3

12 years ago

0.1.2

12 years ago

0.1.1

12 years ago

0.1.0

12 years ago