Explain circuit breakers.
01
01
Understand the problem
circuit-breaker
02
02
Attempt it yourself
Sketch your approach before reading the solution — that's what interviews test.
Stuck? AI Nudge Available
Get a conceptual hint to guide your logic without spoiling the final implementation.
03
03
Study the solution
The solution is waiting
Give it an honest attempt first — then compare your thinking with the full walkthrough.
04
04
Read the code
Circuit breaker
Run Playgroundimport time
class CircuitBreaker:
def __init__(self, threshold=3, cooldown=5):
self.threshold = threshold
self.cooldown = cooldown
self.failures = 0
self.state = "CLOSED"
self.opened_at = 0
def call(self, fn):
if self.state == "OPEN":
if time.time() - self.opened_at >= self.cooldown:
self.state = "HALF_OPEN" # time to probe
else:
raise Exception("circuit OPEN - failing fast")
try:
result = fn()
except Exception:
self.failures += 1
if self.failures >= self.threshold:
self.state = "OPEN"
self.opened_at = time.time()
raise
self.failures = 0 # success resets
self.state = "CLOSED"
return result
cb = CircuitBreaker(threshold=2, cooldown=5)
def flaky():
raise Exception("downstream down")
for i in range(4):
try:
cb.call(flaky)
except Exception as e:
print(i, cb.state, "-", e)05
05
Join the discussion
Discussion (0)
Sign in to join the discussion.
No responses yet. Be the first to share what you think.