When a service fails, callers wait for timeouts. If many requests pile up, the caller fails too. Failures cascade.
Circuit breakers prevent this. After N failures, the circuit "opens." Further calls fail immediately without waiting. After a timeout, the circuit "half-opens" and tests if the service recovered.
States: Closed (normal), Open (failing fast), Half-Open (testing). Libraries: Resilience4j, Hystrix (deprecated). Always mention circuit breakers when discussing service-to-service calls.