Circuit Breaker

Janus has a circuit breaker plugin that can be configured for each endpoint. You can check our example on how to use the plugin.

Configuration

The plain cb config:

{
    "name" : "cb",
    "enabled" : true,
    "config" : {
        "name": "my-circuit-breaker",
        "timeout" : 1000,
        "max_concurrent_requests": 100,
        "error_percent_threshold": 50,
        "request_volume_threshold": 20,
        "sleep_window": 5000,
        "predicate": "statusCode == 0 || statusCode >= 500"
    }
}

Configuration

Description

name

Circuit Breaker name to group stats

timeout

Timeout that the CB will wait till the request responds

max_concurrent_requests

How many commands of the same type can run at the same time

error_percent_threshold

Causes circuits to open once the rolling measure of errors exceeds this percent of requests

request_volume_threshold

Is the minimum number of requests needed before a circuit can be tripped due to health

sleep_window

Is how long, in milliseconds, to wait after a circuit opens before testing for recovery

predicate

The rule that we will check to define if the request was successful or not. You have access to statusCode and all the request object. Defaults to statusCode == 0 \|\| statusCode >= 500

Last updated