Voltar aos resultados

Circuit breaker

Circuit Breaker

Confiabilidade
Intermediário
Categoria: 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

Termos relacionados