Skip to content
Latchkey

O Que É um Circuit Breaker? Explicado

Um circuit breaker é um padrão de resiliência que para de chamar uma dependência com falha por um tempo, para que ela possa se recuperar e os chamadores falhem rapidamente em vez de sobrecarregá-la.

Quando uma dependência está fora do ar, tentar de novo repetidamente desperdiça recursos e pode agravar a interrupção. Um circuit breaker, cujo nome vem do dispositivo elétrico, detecta falhas sustentadas e "dispara", curto-circuitando as chamadas seguintes até que a dependência pareça saudável de novo. Ele é uma contraparte fundamental dos retries.

Os três estados

  • Closed: as chamadas fluem normalmente; as falhas são contadas.
  • Open: falhas demais dispararam o breaker, então as chamadas falham rapidamente sem tentar.
  • Half-open: após um cooldown, algumas chamadas de teste verificam se a dependência se recuperou.

Por que ele complementa os retries

Os retries assumem que a falha é breve; um circuit breaker lida com o caso em que ela não é. Se uma dependência está realmente fora do ar, tentar cada chamada de novo apenas adiciona carga. O breaker dispara, para as chamadas inúteis e deixa a dependência se recuperar, depois testa com cautela antes de retomar.

Falhar rapidamente

Quando o breaker está open, as chamadas retornam imediatamente com uma falha clara em vez de travar em um timeout. Essa falha rápida e previsível costuma ser melhor do que uma lenta: ela libera recursos, evita lentidões em cascata e dá aos chamadores um sinal claro para se degradarem graciosamente.

Onde ele se encaixa no CI

Os circuit breakers importam mais nos serviços e integrações que um pipeline chama, e conceitualmente na forma como você trata um upstream persistentemente com falha: em algum momento você para de tentar de novo e reporta um incidente real. O padrão codifica a linha entre transitório (retry) e sustentado (disparar e escalar).

O ângulo da Latchkey

O princípio por trás de um circuit breaker, repetir o transitório mas não martelar o que está quebrado, espelha como uma boa autocorreção se comporta. Os runners gerenciados com autocorreção da Latchkey repetem falhas transitórias e mecânicas com limites sensatos para que um contratempo isolado não quebre o seu build, sem repetir infinitamente uma falha sustentada.

Principais conclusões

  • Um circuit breaker para de chamar uma dependência com falha para permitir que ela se recupere.
  • Seus estados são closed, open e half-open.
  • Ele complementa os retries ao lidar com falhas sustentadas, não breves.
  • Falhar rapidamente quando está open libera recursos e evita cascatas.

Guias relacionados