Circuit breaker stops calling failing services to prevent cascade failures.
Three states:
Closed: Normal operation. Requests pass through. Track failure count.
Open: Service considered down. Requests fail immediately without calling service. Timer running.
Half-Open: Timer expired. Allow one test request. Success → Closed. Failure → Open.
Transitions:
- Closed → Open: Failure threshold exceeded
- Open → Half-Open: Timeout elapsed
- Half-Open → Closed: Test request succeeds
- Half-Open → Open: Test request fails