AdyenClient.CircuitBreaker (AdyenClient v1.0.0)

Copy Markdown View Source

Simple circuit breaker protecting against Adyen API outages.

States: :closed (normal) → :open (blocking) → :half_open (probing)

Opens after failure_threshold consecutive failures. Moves to :half_open after reset_timeout_ms. Closes after one successful request in :half_open.

Summary

Functions

Returns :ok if request may proceed, {:error, :circuit_open} if blocked.

Returns a specification to start this module under a supervisor.

Record a failed request.

Current circuit state.

Record a successful request.

Functions

allow?()

@spec allow?() :: :ok | {:error, :circuit_open}

Returns :ok if request may proceed, {:error, :circuit_open} if blocked.

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

failure()

@spec failure() :: :ok

Record a failed request.

start_link(opts \\ [])

state()

@spec state() :: :closed | :open | :half_open

Current circuit state.

success()

@spec success() :: :ok

Record a successful request.