Class/Object

failurewall.circuitbreaker

AkkaCircuitBreakerFailurewall

Related Docs: object AkkaCircuitBreakerFailurewall | package circuitbreaker

Permalink

final class AkkaCircuitBreakerFailurewall[A] extends Failurewall[A, A]

A circuit breaker with Failurewall's interface implemented by Akka's CircuitBreaker. Calls wrapped in AkkaCircuitBreakerFailurewall are protected by circuit breaker mechanisms. A circuit breaker prevents a failure form cascading any other failures.

A circuit breaker is a state machine that has a following state.

- CLOSED - OPEN - HALF-OPEN

The CLOSED state is the ordinary state. In this state, calls are executed and failure statistics are recorded. When failure count exceeds the threshold, the circuit breaker switches into the OPEN state.

The OPEN state is the state under problems. In this state, call never executes the body and returns an error immediately, so-called fail-fast. The OPEN state prevents applications from accessing resources under problems. After the configured timeout, the circuit breaker switches into the HALF-OPEN state.

The HALF-OPEN state is the challenge phase. In this state, the first call executes the body in order to test that the problem is fixed. The other calls never execute bodies and return errors immediately. If the first call succeeds, the circuit breaker switches to CLOSED state. If the first call fails, the circuit breaker switches to OPEN state.

Linear Supertypes
Failurewall[A, A], AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. AkkaCircuitBreakerFailurewall
  2. Failurewall
  3. AnyRef
  4. Any
  1. Hide All
  2. Show all
Visibility
  1. Public
  2. All

Instance Constructors

  1. new AkkaCircuitBreakerFailurewall(circuitBreaker: CircuitBreaker, feedback: (Try[A]) ⇒ CircuitBreakerFeedback, executor: ExecutionContext)

    Permalink

    circuitBreaker

    Akka's CircuitBreaker

    feedback

    feedback logic to test the result

    executor

    ExecutionContext

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def call(body: ⇒ Future[A]): Future[A]

    Permalink

    Wraps a call in this circuit breaker.

    Wraps a call in this circuit breaker.

    body

    call that needs protected

    returns

    the result of body with this Failurewall a failed future with FailurewallException if a call is rejected

    Definition Classes
    AkkaCircuitBreakerFailurewall → Failurewall
  6. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  7. final def compose[S](rhs: Failurewall[S, A]): Failurewall[S, A]

    Permalink
    Definition Classes
    Failurewall
  8. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  9. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  10. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  11. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  12. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  13. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  15. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  16. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  17. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  18. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  19. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  20. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Failurewall[A, A]

Inherited from AnyRef

Inherited from Any

Ungrouped