Tutorials Design Patterns in C#
Circuit Breaker Pattern — Complete Guide
Circuit Breaker Pattern — Complete Guide: free step-by-step lesson with examples, common mistakes, and interview tips — part of Design Patterns in C# on Toolliyo Academy.
On this page
Design Patterns in C# · Lesson 34 of 69
Circuit Breaker Pattern
GoF Core ✓ → Enterprise → Cloud & Craft
Enterprise · 2 — App patterns · ~6 min · Module 4: Enterprise Design Patterns
What is this?
Circuit breaker stops calling a failing dependency for a cool-down period after too many errors — fail fast, then trial again.
Why should you care?
ShopNest inventory outage should not exhaust threads on every product page request.
See it live — copy this example
Paste into a C# console or class library project and run dotnet run.
public sealed class CircuitBreaker
{
private int _failures;
private DateTime _openUntil = DateTime.MinValue;
public async Task<T> ExecuteAsync<T>(Func<Task<T>> action)
{
if (DateTime.UtcNow < _openUntil) throw new InvalidOperationException("circuit open");
try
{
var result = await action();
_failures = 0;
return result;
}
catch
{
if (++_failures >= 3) _openUntil = DateTime.UtcNow.AddSeconds(30);
throw;
}
}
}
var cb = new CircuitBreaker();
try { await cb.ExecuteAsync<string>(() => throw new Exception("down")); }
catch { Console.WriteLine("handled"); }
Run Example »
Edit the code below and click Run to see the result in Toolliyo’s live editor.
What happened?
- After threshold failures the circuit opens and rejects quickly.
- Half-open trials come after cool-down.
- Combine with timeouts and fallbacks.
Practice next
- Trip the breaker with repeated failures.
- Observe fast fail while open.
- Add a fallback “stock unknown”.
- Reset failures after success.
- Expose State property Open/Closed.
Remember
Fail fast when sick. Cool-down then trial. Per-dependency breakers.
ShopNest inventory breaker
PDP opens circuit when inventory API dies.
Outcome: Site stays up with degraded stock messaging.
Interview prep for this lesson
Practice these questions aloud after reading—each links to a full structured answer.
Sign in to ask a question or upvote helpful answers.
No questions yet — be the first to ask!