switches
v0.1.1
Published
A distributed system for on/off switches
Downloads
5
Readme
Switches
Switches is a distributed, eventually consistent, circuit breaker type system for applications. It enables you to turn features on and off while they're running without having to take them completely offline or do a complete deploy
What follows is a novel example where two Switches
instances are
synchronized via streams. Seeing how synchronization is done via streams
the same synchronization interface can be used to synchronize the instances
over TCP, HTTP, Websockets or any other transport with a streaming interface
var Switches = require("switches");
var defaults = require("./defaults");
// create two isolated switches instances with sane defaults
var switches1 = new Switches(defaults);
var switches2 = new Switches(defaults);
// connect the two instances together via streams
var s1 = switches1.createStream();
var s2 = switches2.createStream();
s1.pipe(s2).pipe(s1);
// check if registration is enabled in `switches2`
if (switches2.isEnabled("registration")) {
console.log("registration: enabled");
} else {
console.log("registration: disabled");
}
// disable registration in `switches1`
switches1.disable("registration");
process.nextTick(function() {
// check if registration is enabled in `switches2` and `switches1`
if (switches2.isEnabled("registration")) {
console.log("registration: enabled");
} else {
console.log("registration: disabled");
}
if (switches1.isEnabled("registration")) {
console.log("registration: enabled");
} else {
console.log("registration: disabled");
}
// disable registration via `switches2`
switches2.enable("registration");
process.nextTick(function() {
if (switches1.isEnabled("registration")) {
console.log("registration: enabled");
} else {
console.log("registration: disabled");
}
});
});