Circuit breaker
Circuit Breaker
Confiabilidade
IntermediárioCategoria: Agentes, skills e orquestraçãoSubcategoria: Confiabilidade
O que significa
É um mecanismo que, após um número de falhas consecutivas em um serviço (modelo, API, banco de dados), “abre o circuito” e para de chamá-lo por um período, redirecionando o tráfego para um fallback, em vez de continuar tentando e degradando todo o sistema.
Depois do intervalo, o mecanismo testa se o serviço voltou e, se sim, “fecha o circuito” e retoma o uso normal.
A metáfora vem do disjuntor elétrico, que desarma para proteger a instalação quando algo está errado.
Como usar na prática de produto
Em Produto, o circuit breaker evita que a queda de um fornecedor de modelo derrube o produto inteiro, e evita a conta de milhares de tentativas em massa contra um serviço que não está respondendo.
As decisões a tomar com o time: quantas falhas abrem o circuito, para onde vai o tráfego enquanto ele está aberto e como o usuário é informado da degradação.
Por exemplo: 10 falhas em 1 minuto no fornecedor principal abrem o circuito, e o tráfego vai para o modelo secundário por 5 minutos antes de uma nova tentativa.
Quando usar este termo ou outro
Use circuit breaker para dependências externas críticas, como APIs de modelos e bancos vetoriais.
Use retry para falhas isoladas e esporádicas.
Use kill switch quando a decisão de desligar é humana, e não automática.
Uma forma simples de diferenciar: retry lida com uma falha; circuit breaker lida com uma sequência de falhas; kill switch é a pessoa desligando.
Exemplos de aplicação
- Fornecedor de modelo: redirecionar para o secundário após falhas consecutivas.
- Banco vetorial: degradar para busca lexical se o índice vetorial ficar indisponível.
- Ferramentas externas: suspender chamadas a uma API instável por alguns minutos.
- Comunicação: avisar o usuário quando o sistema está operando em modo degradado.
- Recuperação: testar automaticamente se o serviço voltou antes de restabelecer o tráfego.
Origem do termo
Padrão de resiliência descrito por Michael Nygard em Release It! (2007); metáfora do disjuntor elétrico.
Fonte técnica
Nygard, Release It! (2007); Microsoft Azure Architecture Center, Circuit Breaker pattern
