Por que seu sistema ainda não sabe a hora de parar?

Quantas vezes já nos deparamos com aquela API externa que estamos consultando dentro de nossas aplicações e a mesma vem a falhar inumeras vezes deixando nossos serviços de mãos vazias e sem saber para onde ir, resultando em atrasos de requisições e deixando o cliente enfurecido ? É problemas como esse que o Circuit Breaker nos apresenta uma saída.

  • Fechado (Closed): Tudo funciona normalmente, as requisições passam livremente.
  • Aberto (Open): Após um certo número de falhas, o disjuntor “abre”, bloqueando novas requisições por um tempo.
  • Meio-aberto (Half-Open): Após um intervalo, algumas requisições-teste são permitidas. Se forem bem-sucedidas, o circuito volta ao estado fechado; se falharem, volta ao aberto.

Por que usar?

  • Evita sobrecarregar sistemas que já estão com problema.
  • Previne “falhas em cascata” (um serviço quebrado derrubar geral).
  • Dá tempo para recuperação (tenta de novo só depois de uma pausa).

Exemplos rápidos

1. API de Pagamento

Você vende ingressos online e usa uma API de pagamentos de terceiros.

O sistema de pagamento cai de repente.

Sem circuit breaker:

  • Toda nova tentativa (do usuário ou automática) só piora, lotando ainda mais o serviço.

Com circuit breaker:

  • Depois de, por exemplo, 3 falhas, sua aplicação para de enviar requisições por um tempo.
  • O usuário recebe retorno rápido (“Tente novamente mais tarde”) e seu sistema não sobrecarrega.

2. Comunicação entre Microserviços

Você tem arquitetura de microserviços e o serviço A faz chamadas HTTP para o serviço B.

  • O serviço B trava ou fica lento.
  • O A seguiria tentando e esperando timeout, gastando recursos.
  • Com circuit breaker: Após falhas seguidas, o A para de tentar por um período, liberando recursos.

3. Gateway de Armazenamento de Arquivos

Um serviço faz uploads para armazenamento na nuvem. O storage passa por uma indisponibilidade temporária.

  • Sem circuit breaker: sua aplicação fica tentando e entope a fila.
  • Com circuit breaker: bloqueia logo as tentativas, evitando fila acumulada até tudo voltar ao normal.

Configurações principais

  • Quantidade de falhas: Quantos erros antes de abrir o circuito?
  • Tempo de break: Quanto tempo fica aberto até tentar de novo?
  • Exceções: Quais falhas contam? (erros, timeout, etc.)
  • Estado meio-aberto: Quantas requisições de teste pra fechar de novo?

Prós e Contras

Prós:

  • Previne falhas em cascata
  • Reduz desperdício de recursos
  • Dá resposta rápida ao usuário

Contras:

  • Requer ajuste cuidadoso
  • Pode atrasar a recuperação
  • Adiciona um pouco de complexidade

Pensamento final

O circuit breaker é uma ferramenta simples e poderosa para tornar seu sistema mais resiliente, principalmente em arquiteturas distribuídas ou na nuvem. Fácil de implementar (principalmente com bibliotecas como Polly no .NET), ele transforma grandes quedas em problemas pontuais — e seus usuários seguem felizes, mesmo quando outros serviços falham! É sempre importante levar em consideração a tratativa de falhas quando estamos nos comunicando com outros sistemas.

No próximo artigo irei mostrar como podemos utilizar esse padrão no .NET com a biblioteca Polly.

Compartilhe este insight:

Comentários

Participe deixando seu comentário sobre este artigo a seguir:

Subscribe
Notify of
guest
0 Comentários
Oldest
Newest Most Voted
Inline Feedbacks
View all comments

AUTOR

Ruan Rodrigues
Engenheiro de Software Sênior

Arquitetura de Software

Ajudamos empresas a definir, analisar e otimizar a arquitetura de seus sistemas de software, garantindo escalabilidade, desempenho, segurança e manutenção a longo prazo.

INSIGHTS EXIMIACO

Desenvolvimento de Software

Gestão de times para acelerar entregas e atuar na resolução de problemas complexos.

NOVOS HORIZONTES PARA O SEU NEGÓCIO

Nosso time está preparado para superar junto com você grandes desafios tecnológicos. Entre em contato e vamos juntos utilizar a tecnologia do jeito certo para gerar mais resultados.

O seu cadastro foi realizado com sucesso!

Em breve enviaremos a apresentação desta palestra para o seu e-mail.

Seu contato foi enviado com sucesso!

Em breve retornaremos seu contato com mais informações sobre como realizar a sua inscrição na capacitação C# do Jeito Certo. Aproveite para conferir o programa completo da capacitação:

A sua inscrição foi realizada com sucesso!

O link de acesso à live foi enviado para o seu e-mail. Nos vemos no dia da live.

Muito obrigado!

Deu tudo certo com seu envio!
Logo entraremos em contato

Por que seu sistema ainda não sabe a hora de parar?

Para se candidatar nesta turma aberta, preencha o formulário a seguir:

Por que seu sistema ainda não sabe a hora de parar?

Para se candidatar nesta turma aberta, preencha o formulário a seguir:

Condição especial de pré-venda: R$ 14.000,00 - contratando a mentoria até até 31/01/2023 e R$ 15.000,00 - contratando a mentoria a partir de 01/02/2023, em até 12x com taxas.

Tenho interesse nessa capacitação

Para solicitar mais informações sobre essa capacitação para a sua empresa, preencha o formulário a seguir:

Tenho interesse em conversar

Se você está querendo gerar resultados através da tecnologia, preencha este formulário que um de nossos consultores entrará em contato com você:

O seu insight foi excluído com sucesso!

O seu insight foi excluído e não está mais disponível.

O seu insight foi salvo com sucesso!

Ele está na fila de espera, aguardando ser revisado para ter sua publicação programada.

Tenho interesse em conversar

Se você está querendo gerar resultados através da tecnologia, preencha este formulário que um de nossos consultores entrará em contato com você:

Tenho interesse nessa solução

Se você está procurando este tipo de solução para o seu negócio, preencha este formulário que um de nossos consultores entrará em contato com você:

Tenho interesse neste serviço

Se você está procurando este tipo de solução para o seu negócio, preencha este formulário que um de nossos consultores entrará em contato com você:

0
Queremos saber a sua opinião, deixe seu comentáriox