Interface CircuitBreaker

All Superinterfaces:
FtHandler, RuntimeType.Api<CircuitBreakerConfig>

@Contract public interface CircuitBreaker extends FtHandler, RuntimeType.Api<CircuitBreakerConfig>
CircuitBreaker protects a potentially failing endpoint from overloading and the application from spending resources on those endpoints.

In case too many errors are detected, the circuit opens and all new requests fail with a CircuitBreakerOpenException for a period of time. After this period, attempts are made to check if the service is up again - if so, the circuit closes and requests can process as usual again.

  • Method Details

    • create

      static CircuitBreaker create(CircuitBreakerConfig config)
      Create a new circuit builder based on its configuration.
      Parameters:
      config - circuit breaker configuration
      Returns:
      a new circuit breaker
    • create

      static CircuitBreaker create(Consumer<CircuitBreakerConfig.Builder> builderConsumer)
      Create a new circuit breaker with a possibility to customize its configuration.
      Parameters:
      builderConsumer - consumer of configuration
      Returns:
      a new circuit breaker
    • builder

      static CircuitBreakerConfig.Builder builder()
      A new circuit breaker fluent API builder.
      Returns:
      a new builder
    • state

      Current breaker state. As the state may change within nanoseconds, this is for information only.
      Returns:
      current breaker state
    • state

      void state(CircuitBreaker.State newState)
      Set state of this circuit breaker. Note that all usual processes to re-close or open the circuit are in progress. So a subsequent call to state() may yield a different state than configured here
      Parameters:
      newState - state to configure