Skip to content

Visigoth: a load balancer with circuit breaker capabilities

License

Notifications You must be signed in to change notification settings

dgonzalez/visigoth

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Visigoth

Visgoth is a multipurpose load balancer with circuit breaking capabilities. By default, it provides a round-robin strategy that will work in the majority of the situations.

Visigoth allows you to customize the strategy for choosing the healthiest target by evaluating the statistics recorded by previous calls to the same target:

function rater(upstream) {
    var responseTime = upstream.meta$.stats.responseTime;
    if(typeof responseTime !== 'undefined') {
        return 3000 - upstream.meta$.stats.responseTime;
    } else {
        return 1;
    }
}

var visigoth = require('../../visigoth')({customRater: rater});

visigoth.choose(function(target, errored, stats) {
    console.log(target);
    if (target === "slow-upstream") {
        stats.responseTime = 3001;
    } else {
        stats.responseTime = 100;
    }
    callback();
});

For more info on how to use it give a look to the folder examples that contains few use cases explained step by step.

The Team

Acknowledgements

This project was sponsored by nearForm

License

Licensed under MIT

About

Visigoth: a load balancer with circuit breaker capabilities

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%