ckt-breaker
Tiny circuit breaker implementation. Wrapped service must return Promise.
Requirements
- node v6+
- npm 3+
Install
$ npm install --save ckt-breaker
Usage
const cktBreaker = ;// Function that hits some service const fn = Promise; const ckt = ; ckt // Safe doesn't overload the remote service
API
cktBreaker(fn, {options})
fn
Type: function
A promise returning function
options
retry
Type: integer
Default: 10000
Time in ms after which to retry hitting fn
timeout
Type: integer
Default: 0
Time in ms to timeout fn if fn takes longer than that. By default this is disabled (0).
maxError
Type: integer
Default: 10
No of errors in maxTime
time to occur before breaking the circuit
maxTime
Type: integer
Default: 1000
Time Frame to consider maxError no of error to break the circuit
fallback
Type: function
Default: () => Promise.reject(new Error('Service Currently unavailable')
Fallback function to call when circuit is broken
Methods
fire
const ckt = cktBreaker(fn);
ckt.fire([1,2,3]) // Any args taken by fn;
Function that runs wrapped fn and passes over arguments given to it
Events
open
Fired when circuit is opened
closed
Fired when circuit is closed
License
MIT © Nikhil Srivastava