When the downstream is broken, fail fast — don't pile on.
When a downstream slows down or starts failing, naive callers keep sending requests, hold connections waiting for responses that never come, and run out of resources themselves. One failing service brings down everything that depends on it.
A circuit breaker watches the recent error rate to a downstream. Three states: closed (normal), open (downstream is broken — reject immediately), half-open (cooldown elapsed, send one probe). Successful probe → closed. Failed probe → back to open.
The database goes flaky for a window. Without a circuit breaker, the server's connection pool fills with hung requests. Insert a breaker so failures fast-fail and the server stays responsive.