Skip to main content
Here’s your traditional home. You have a living room, a bathroom, a kitchen, and maybe a couple of bedrooms. In one room, two siblings might be playing video games while Grandma watches them. She gets a little cold, so she plugs in her heater. Adjacent on the other side of that wall, Mom just finished showering and is drying her hair. Without getting too deep into the electrical details, there is too much current flowing through that circuit, which can cause the wires to overheat and potentially catch fire. Luckily, your home has a circuit breaker. A circuit breaker is a safety switch. If a TV, gaming console, heater, and dryer are all drawing power from the same circuit at once, the breaker will trip and cut power to that part of the house to prevent overheating and fire. Circuit breakers literally save homes every day. Circuit breaking in Istio is analogous to the circuit breaker in your house, but instead of electricity it controls network traffic between services. If one service is slow, overloaded, or failing, circuit breaking helps protect the rest of the system from being dragged down.
The image shows a person sitting on a sofa with a heater, two people playing video games in front of a TV, and a person drying their hair in front of a mirror.
Consider a simple example: your home hot water system. Hot water is distributed on demand to bathrooms, the kitchen, and the laundry. If every tap requests hot water at once, the water heater may become overwhelmed and start delivering cold water or fail. With a smart system (like Istio), you could enforce a rule: if more than two taps request hot water simultaneously, stop accepting new requests for a short time. This prevents the heater from being overloaded while allowing the system to recover. Applied to microservices, circuit breaking prevents one struggling component from causing cascading failures across the entire application.

Bookinfo example

The Bookinfo sample app demonstrates typical service-to-service communication: productpage calls details and reviews. If the details service slows or fails, productpage requests pile up waiting for responses. Circuit breaking lets us fail fast (return an error or fallback) instead of waiting indefinitely, keeping the rest of the system responsive and preventing request queues from growing unbounded.

Cascading failure example

Imagine three services: homepage, products, and a database. The products service queries the database, and the homepage calls products. If the database becomes slow, the products service waits, times out, and keeps retrying. The homepage then becomes slow as it waits on the products service, causing more requests and eventually a cascading failure. Circuit breaking stops this chain by tripping when a downstream dependency is unhealthy. Tripping allows callers to quickly receive an error or fallback response so the overall system remains available and the unhealthy component gets isolated for recovery.

Why use circuit breaking?

  • Prevents spread of failures: Stops calls to an unhealthy service before they cause additional failures.
  • Keeps the rest of the system running: Gives struggling services breathing room to recover.
  • Fails fast for better UX: Returns a quick error or fallback rather than making users wait indefinitely.
  • Provides a signal for troubleshooting: A tripped circuit is an obvious indicator that something is wrong.

Configuration overview

In Istio, circuit breaking is configured inside a DestinationRule’s trafficPolicy. There is no standalone “CircuitBreaker” top-level resource. Common controls include connection pool limits and outlier detection (which ejects unhealthy hosts). Example DestinationRule containing both connection pool settings and outlier detection:

Key fields explained

All of these options (and more) are documented under DestinationRule connection pool and outlier detection settings. Review the official docs for the complete list of options and real-world examples: https://istio.io/latest/docs/reference/config/networking/destination-rule/ Another example for a reviews service:
Circuit breaking (connection pool settings and outlier detection) is configured in DestinationRule. The exam often asks about these settings—review the DestinationRule documentation and examples: https://istio.io/latest/docs/reference/config/networking/destination-rule/.

Quick troubleshooting checklist

  • Verify DestinationRule host matches the service FQDN.
  • Confirm values are appropriate for traffic patterns (don’t set maxConnections too low).
  • Use metrics and logs (Envoy and Istio telemetry) to see ejection and connection counts.
  • Tune consecutive5xxErrors, interval, and baseEjectionTime based on observed failure modes.
That covers the theory of circuit breaking in Istio. A demo will show these configurations in action.

Watch Video