Circuit Breaker (ops)
Um padrão de resiliência que "corta o circuito" para uma dependência que começou a falhar — para de chamá-la e falha rápido em vez de ficar pendurado em timeouts. Protege contra falhas em cascata, quando uma dependência quebrada arrasta tudo que a chama junto. Batizado por causa do disjuntor elétrico.
Mecânica: o circuit breaker tem três estados. Closed (normal — as chamadas passam, as falhas são contadas); se a taxa de falha ultrapassa um limiar, ele vira Open (todas as chamadas são rejeitadas na hora, "fail fast", sem nem tentar — a dependência ganha um respiro e quem chama não fica pendurado em timeout). Depois de um tempo ele passa pra Half-open (deixa passar algumas chamadas de teste): se derem certo → volta pra Closed, se falharem → Open de novo. O problema que resolve: sem o breaker, todo mundo continua martelando um serviço agonizante e trava em timeouts → threads e recursos se esgotam → a falha se espalha pra cima (cascata). Implementado em código (Resilience4j, Polly) ou por um service mesh. Anda de mãos dadas com retries, timeouts e bulkhead. Uma pedra fundamental da resiliência em microsserviços.