Skip to content

hyperlink/elector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Elector - simple zookeeper based leader election

Build Status Greenkeeper badge npm version

Features

  • emits leader event when instance has been elected a leader
  • emits follower event when instance is a follower
  • check using elector.isLeader

Install

npm install --save elector

Usage

const Elector = require('elector')

const elector = new Elector({host: 'localhost:2818'})

// alternatively pass in zookeeper client
// const elector = new Elector(new zookeeper.createClient('localhost:2818'))

// connects to zookeeper and starts the election process
elector.connect()

elector.on('leader', function () {
	console.log('I am the supreme leader worship me!')
})

elector.on('follower', function () {
	console.log('I am but a lowly follower :(')
})

// leave the election and closes zookeeper connection
// do this to leave the election quickly
// elector.disconnect()

License

MIT