Circuit breakers live in a messy world of partial data, lag, and conflicting signals. Yet, most UIs boil this complexity down to a single word: “Healthy.”

That is a lie. Usually, it’s a “convenience lie”—a desire to appear confident rather than accurate. But confidence is not the same thing as evidence. If you are going to stop or degrade safely, your UI must communicate what is True, what is Observed, and what is Unknown.


The Three Layers of Truth

When rendering breaker status, don’t collapse these three distinct concepts into one sentence:

  1. The Claim: What the system is asserting (e.g., “We are blocking requests”).
  2. The Observed: The evidence for that claim (error rates, latency, last success).
  3. The Unknown: The gaps (missing samples, stale windows, blocked calls).

What the UI Must Show

To build trust, your interface should answer these six questions:

1. The Claim (In Plain Language)

Do not force users to translate a state machine. Use the Decision, not just the State:

  • Instead of “OPEN” → “Requests are being blocked”
  • Instead of “HALF_OPEN” → “Limited traffic is being allowed”

2. The Evidence Window

Numbers look arbitrary without a time slice. Clearly state if the system is judging the “last 5 minutes” or the “last 200 samples.”

3. Sample Sufficiency

Avoid the “no data” trap. If you have insufficient samples, say it plainly: “Insufficient recent samples to assess.” Never let “Unknown” render as a confident green “Healthy.”

4. The Last Meaningful Event

Give users a handle on recency by showing one of these:

  • Last successful call.
  • Last failure that influenced the state.
  • Time since the last state change.

5. What Happens Next

State transitions shouldn’t feel mysterious. Show the next gate in human terms:

  • “Will allow 5 probes after 30s cooldown.”
  • “Will close after 10 consecutive successes.”

6. The Degrade Behavior

If you are serving “last-known-good” data, label it. If you are queueing, show the backlog age. If you only show the breaker state, users will assume the rest of the system is behaving normally.


The Layout Pattern: Separate Truth from Explanation

To create a stable mental model without a “wall of text,” visually separate your UI into these zones:

Zone Purpose
STATUS The current claim and the immediate decision.
EVIDENCE Observed facts and the measurement window.
UNKNOWNS Missing pieces and why they are missing.
RULES The logic of what will happen next.

Why Honesty is the Best Policy

People make high-stakes decisions based on your UI. They take screenshots and paste status labels into incident channels.

If your UI renders uncertainty as certainty, you will cause bad decisions. If you render uncertainty explicitly, users will forgive the messiness—because it finally matches the reality they are seeing in the logs.

The goal is not to look smart. The goal is to be honest.