New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

consul-leader

Package Overview
Dependencies
Maintainers
2
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

consul-leader

Consul leader election and retirement.

latest
Source
npmnpm
Version
1.1.1
Version published
Maintainers
2
Created
Source

consul-leader

Consul leader election and retirement.

https://www.consul.io/docs/guides/leader-election.html

Usage

npm install --save consul-leader
const Leader = require('consul-leader');

let consulLeader = new Leader('locking-key');
consulLeader.on('elected', () => {
    // start service
});

consulLeader.on('retired', () => {
    // stop service
});

Leader

Configuration

No configuration is required, but it's recommended to provide at least a custom key name.

let consulLeader = new Leader('locking-key');

It's possible to configure every aspect (consul, session, key) by providing a configuration object instead of a plain string. Most aspects match the configuration options of the consul package.

let consulLeader = new Leader({
    consul: {
        host: '127.0.0.1',
        port: 8500
    },
    session: {
        ttl: 10,
        lockdelay: 15
    },
    key: {
        key: 'locking-key',
        value: 'leader'
    }
});

The consul configuration matches the consul constructor options. Note: the promisify option is required and will be automatically enabled in this package.

The session configuration matches the consul session create options. But the ttl and lockdelay options have to be integers in seconds.

The key configuration matches the consul kv set options. The acquire and release options are automatically added, overwriting them will lead to unexpected behaviour.

Events

The Leader class will automatically try to acquire the leader lock and emits two different events:

  • elected: Will be fired when the current instance has acquired the leader lock successfully
  • retired: Will be fired when the current instance has lost the leader lock
consulLeader.on('elected', () => {
    // start service
});

consulLeader.on('retired', () => {
    // stop service
});

Resign

If the current instance wants to stop, it can release the lock safely and give others the chance to take over.

consulLeader.resign();

Keywords

consul

FAQs

Package last updated on 02 Apr 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts