Fallback Strategy
What a caller does instead when a circuit breaker is open — the part of the pattern that determines whether failing fast helps anyone.
A breaker that converts slow errors into fast errors has improved the shape of the outage without preventing it. The value is in what you fail fast to.
Ordered roughly by usefulness:
Serve stale. Return the last known good value from a cache, ideally labelled as stale. For catalogues, configuration, pricing tiers and profile data this is almost always acceptable and almost always better than an error.
Serve a default. A generic recommendation set, a standard shipping estimate, an unpersonalised page.
Degrade the feature. Hide the section that needs the dependency and render the rest.
Queue the write. Accept, acknowledge, and process when the dependency returns — appropriate when the operation does not need a synchronous answer.
Fail explicitly. Sometimes correct: a payment authorisation should not be faked. Fail with a clear, retryable error rather than a timeout.
The design work is deciding this per dependency, in advance, and writing it down. Discovering during an incident that nobody knows what the acceptable degraded behaviour is means the answer becomes "return 500".