quinta-feira, 24 de setembro de 2026 · Edição online
Digitorack
Digitorack

Circuit Breaker padrão: o que é e quando usar

ResumoO Circuit Breaker é um padrão de projeto de software que interrompe chamadas a serviços remotos ou dependências instáveis após um limite de falhas consecutivas, prevenindo falhas em cascata. O padrão opera em três estados: fechado, aberto e meio-aberto, permitindo recuperação gradual. A aplicação do Circuit Breaker é recomendada em cenários com latência variável, serviços externos não confiáveis ou operações de alta criticidade, onde uma falha pontual pode sobrecarregar o sistema.

O circuit breaker é um padrão de projeto que protege seu sistema contra falhas em cascata. Aprenda como ele funciona e em quais cenários faz sentido aplicar no seu código.

Letícia Sampaio Khoury Letícia Sampaio Khoury · Editora de Gadgets e Consumo Tech
· · 5 min de leitura
Circuit Breaker padrão: o que é e quando usar
Foto: Imagem ilustrativa · Digitorack

O circuit breaker é um padrão de projeto que protege seu sistema contra falhas em cascata. Aprenda como ele funciona e em quais cenários faz sentido aplicar no seu código.

O circuit breaker é um padrão de projeto que protege seu sistema contra falhas em cascata. Quando um serviço externo começa a falhar, ele interrompe as chamadas a esse serviço por um período, dando tempo para a recuperação e evitando que a falha se espalhe pelo sistema inteiro. É como um disjuntor elétrico: quando a corrente passa do limite, o circuito abre e interrompe o fluxo.

O padrão é especialmente útil em arquiteturas de microservices, onde uma falha em um serviço pode derrubar vários outros. Mas ele também se aplica a chamadas a bancos de dados, APIs externas e qualquer recurso que possa ficar indisponível.

Como funciona o padrão circuit breaker?

O circuit breaker tem três estados principais: fechado, aberto e meio-aberto.

No estado fechado, as chamadas fluem normalmente. O breaker monitora as falhas. Quando o número de erros consecutivos ou a taxa de erro passa de um limite configurado, o circuito abre.

No estado aberto, as chamadas são recusadas imediatamente, sem tentar acessar o serviço. Isso evita que o sistema fique esperando por um serviço que está fora. Após um tempo de espera, o breaker passa para o estado meio-aberto.

No estado meio-aberto, um pequeno número de chamadas é liberado para testar se o serviço se recuperou. Se as chamadas de teste funcionarem, o circuito fecha. Se falharem, ele abre novamente.

Quando usar circuit breaker no código?

Use circuit breaker quando você tem chamadas a serviços externos que podem falhar e causar impacto em cadeia. Por exemplo, em um microservice que depende de outro para buscar dados. Se o segundo serviço cai, o primeiro pode ficar acumulando requisições e derrubar também.

Também faz sentido usar quando o tempo de resposta do serviço externo é alto. Se o serviço demora demais, as threads do seu sistema ficam presas esperando. O circuit breaker evita esse acúmulo recusando as chamadas rapidamente.

Um caso concreto: um gateway de pagamento que está fora do ar. Sem circuit breaker, cada requisição tenta conectar e espera um timeout, que pode ser de 30 segundos. Com o padrão, após algumas falhas, o circuito abre e as requisições são recusadas na hora, liberando recursos.

Circuit breaker vs retry: qual a diferença?

O padrão retry tenta novamente uma operação que falhou, geralmente com espera entre tentativas. Ele é útil para falhas transitórias, como uma queda de rede momentânea.

O circuit breaker serve a uma finalidade diferente. Ele não tenta de novo. Ele interrompe as chamadas por um período, assumindo que o serviço está fora e que novas tentativas só vão piorar a situação.

Na prática, os dois padrões se complementam. Você pode usar retry para falhas temporárias e circuit breaker para falhas persistentes. Muitas bibliotecas, como Resilience4j e Hystrix, permitem combinar os dois.

Quais bibliotecas implementam circuit breaker?

Existem bibliotecas prontas para várias linguagens. No Java, o Resilience4j é uma opção leve e moderna. No .NET, o Polly é amplamente usado. Em Node.js, há o opossum.

Essas bibliotecas oferecem configuração refinada: limite de falhas, tempo de espera, estratégia de abertura e fechamento. Você não precisa implementar o padrão do zero, o que reduz erros e acelera o desenvolvimento.

Quais cuidados tomar ao usar circuit breaker?

O principal cuidado é configurar os limites corretamente. Um limite muito baixo abre o circuito com poucas falhas, interrompendo chamadas que poderiam funcionar. Um limite muito alto não protege o sistema.

Outro ponto: o tempo de espera no estado aberto. Se for curto demais, o circuito abre e fecha com frequência, causando instabilidade. Se for longo, o serviço pode ficar indisponível por mais tempo que o necessário.

Também é importante monitorar o comportamento do breaker. Sem métricas, você não sabe se ele está abrindo com frequência ou se os limites estão adequados.

Resumo

O circuit breaker é um padrão essencial para sistemas distribuídos que dependem de serviços externos. Ele evita falhas em cascata, reduz o tempo de espera em chamadas falhas e dá tempo para o serviço se recuperar. Use quando houver dependências críticas e configure os limites com base no comportamento real do sistema.

Perguntas frequentes

O que acontece quando o circuit breaker abre?

Quando o circuit breaker abre, as chamadas ao serviço são recusadas imediatamente, sem tentar acessar o recurso. Isso evita que o sistema acumule requisições e espere por timeouts longos. O circuito permanece aberto por um período configurado, depois passa para o estado meio-aberto para testar a recuperação.

Circuit breaker funciona para chamadas a banco de dados?

Sim, funciona. Se um banco de dados está lento ou fora do ar, o circuit breaker pode interromper as consultas e evitar que o aplicativo fique preso esperando. Isso é útil em cenários de alta carga, onde o banco pode ficar sobrecarregado e o sistema inteiro sofre.

Qual a diferença entre circuit breaker e timeout?

O timeout define o tempo máximo que uma chamada pode esperar por uma resposta. O circuit breaker monitora falhas e interrompe chamadas após um limite de erros. Eles são complementares: o timeout evita espera infinita, o circuit breaker evita chamadas repetidas a um serviço que está fora.

É necessário implementar circuit breaker em monólitos?

Depende. Se o monolito faz chamadas a APIs externas ou a serviços que podem falhar, o padrão ajuda. Para chamadas internas dentro do mesmo processo, o ganho é menor, pois a falha geralmente é tratada por exceções. Avalie se o serviço externo é crítico e se a falha pode causar impacto.

Como escolher os limites do circuit breaker?

Os limites devem refletir o comportamento real do sistema. Observe a taxa de erro normal, o tempo de resposta médio e a tolerância do usuário final. Comece com valores conservadores e ajuste com base em métricas de produção. Não existe uma configuração universal.

Circuit breaker substitui o padrão retry?

Não. São padrões complementares. O retry é para falhas transitórias, que podem ser resolvidas com uma nova tentativa. O circuit breaker é para falhas persistentes, onde novas tentativas só pioram a situação. Use retry primeiro e circuit breaker como proteção contra falhas repetidas.

Compartilhar:
Letícia Sampaio Khoury

Letícia Sampaio Khoury

Editora de Gadgets e Consumo Tech

Testa o gadget no dia a dia real, avalia se vale a grana sem deslumbre de novidade.

Ver todos os artigos →

Leia também

Validação de Dados: 11 Bibliotecas Mais Usadas
Apps e Software

Validação de Dados: 11 Bibliotecas Mais Usadas

Validar dados antes de gravar ou exibir evita retrabalho e falhas de segurança. Listamos 11 bibliotecas de validação de dados com critérios concretos para você escolher a melhor para cada linguagem e contexto.

17 de setembro de 2026 · Camila Bressane Drumond
GraphQL Subscriptions: Guia Passo a Passo Prático
Apps e Software

GraphQL Subscriptions: Guia Passo a Passo Prático

Implementar GraphQL subscriptions assusta menos do que parece. Neste guia passo a passo, mostro como configurar o servidor, escolher o pubsub certo e conectar o cliente, com os erros que eu mesmo cometi no caminho.

17 de setembro de 2026 · Letícia Sampaio Khoury
Consultar placa de carro: comprar às cegas x com dados
Apps e Software

Consultar placa de carro: comprar às cegas x com dados

Comprar carro sem checar a placa é apostar no escuro. Veja o que a tecnologia de consulta veicular mostra e como isso muda a negociação.

16 de setembro de 2026 · Redação

Gostou? Receba mais análises

Newsletter quinzenal · curadoria editorial · sem spam