LLMProxy.Providers.CircuitBreaker (llm_proxy v0.1.0)

Copy Markdown View Source

GenServer-backed deployment circuit breaker for routing skips, half-open probes, and cooldowns.

Summary

Types

state()

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

t()

@type t() :: %LLMProxy.Providers.CircuitBreaker{
  cooldown_ms: non_neg_integer() | nil,
  failures: non_neg_integer(),
  opened_at: integer() | nil,
  state: state()
}

Functions

available?(attempt)

@spec available?(LLMProxy.Providers.Attempt.t()) :: boolean()

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

failure(attempt, cooldown_ms \\ nil)

@spec failure(LLMProxy.Providers.Attempt.t(), non_neg_integer() | nil) :: :ok

reset()

@spec reset() :: :ok

start_link(opts)

@spec start_link(keyword()) :: GenServer.on_start()

status(attempt)

@spec status(LLMProxy.Providers.Attempt.t()) :: t()

success(attempt)

@spec success(LLMProxy.Providers.Attempt.t()) :: :ok