Class CircuitBreaker
java.lang.Object
org.episteme.server.server.resilience.CircuitBreaker
Circuit Breaker implementation for fault tolerance.
States:
- CLOSED: Normal operation, requests flow through
- OPEN: Failures exceeded threshold, requests fail fast
- HALF_OPEN: Testing if service recovered
Thread-safe implementation using atomic primitives.
- Since:
- 1.0
- Author:
- Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classException thrown when circuit breaker is open.static enum -
Constructor Summary
ConstructorsConstructorDescriptionCircuitBreaker(String name) Create a circuit breaker with default settings. - 5 failures to open - 3 successes to close - 30 seconds open durationCircuitBreaker(String name, int failureThreshold, int successThreshold, Duration openDuration) Create a circuit breaker with custom settings. -
Method Summary
Modifier and TypeMethodDescriptionbooleanCheck if a request should be allowed through.voidExecute a runnable with circuit breaker protection.<T> TExecute a supplier with circuit breaker protection.intgetName()getState()intvoidRecord a failed call.voidRecord a successful call.voidreset()Force the circuit breaker to reset to CLOSED state.
-
Constructor Details
-
CircuitBreaker
Create a circuit breaker with default settings. - 5 failures to open - 3 successes to close - 30 seconds open duration -
CircuitBreaker
-
-
Method Details
-
execute
Execute a supplier with circuit breaker protection. -
execute
Execute a runnable with circuit breaker protection. -
allowRequest
public boolean allowRequest()Check if a request should be allowed through. -
recordSuccess
public void recordSuccess()Record a successful call. -
recordFailure
public void recordFailure()Record a failed call. -
reset
public void reset()Force the circuit breaker to reset to CLOSED state. -
getName
-
getState
-
getFailureCount
public int getFailureCount() -
getSuccessCount
public int getSuccessCount()
-