Repolode
danielfm

danielfm/pybreaker

Implementação em Python do padrão Circuit Breaker, que interrompe chamadas a dependências com falha para proteger o restante do sistema.

Estrelas
701
Forks
96
Issues abertas
28
Último commit
mês passado

O que é?

O PyBreaker envolve chamadas a pontos de integração pouco confiáveis, como bancos de dados, filas ou serviços externos. Após um número configurado de falhas consecutivas, o circuito abre e as chamadas seguintes falham imediatamente, em vez de ficarem aguardando uma dependência com problemas. Depois de um tempo limite de reinicialização, a próxima chamada é liberada para testar se a dependência se recuperou.

O Circuit Breaker pode ser usado como decorator, por meio de um método de chamada direta ou como gerenciador de contexto. Ele permite excluir exceções de negócio da contagem de falhas, usar vários event listeners e proteger funções geradoras. O estado pode ser consultado e alterado em tempo de execução por meio de propriedades e métodos.

O estado pode ser mantido em memória ou armazenado no Redis, com um namespace separado para cada breaker. A biblioteca também inclui suporte opcional a coroutines assíncronas do Tornado. É necessário usar Python 3.10 ou posterior.

Recursos principais

  • 01Limite de falhas e tempo limite de reinicialização configuráveis
  • 02Exclusão de exceções de negócio da contagem de falhas por tipo ou callable
  • 03Vários event listeners por Circuit Breaker
  • 04Proteção de funções geradoras
  • 05Armazenamento opcional do estado no Redis
  • 06Suporte opcional a chamadas assíncronas do Tornado

Casos de uso

  • Proteger chamadas ao banco de dados contra falhas em cascata quando ele está indisponível
  • Falhar rapidamente em chamadas a uma API HTTP instável de terceiros
  • Registrar ou emitir alertas sobre mudanças no estado do circuito em serviços de produção

Início rápido

  1. 1

    Instale o PyBreaker pelo PyPI

    pip install pybreaker
  2. 2

    Crie um CircuitBreaker e proteja uma função com ele

Antes de usar

  • Requer Python 3.10 ou superior.

Em coleções

Tópicos

#circuit-breaker#resilience#fault-tolerance#python#redis#microservices

Perguntas frequentes

O que é pybreaker?
Implementação em Python do padrão Circuit Breaker, que interrompe chamadas a dependências com falha para proteger o restante do sistema. O PyBreaker envolve chamadas a pontos de integração pouco confiáveis, como bancos de dados, filas ou serviços externos. Após um número configurado de falhas consecutivas, o circuito abre e as chamadas seguintes falham imediatamente, em vez de ficarem aguardando uma dependência com problemas. Depois de um tempo limite de reinicialização, a próxima chamada é liberada para testar se a dependência se recuperou.
pybreaker é gratuito? Qual é a licença?
pybreaker é open source sob a licença BSD-3-Clause. Confira os termos da licença antes de usá-lo em produtos comerciais.
pybreaker ainda é mantido?
Atualizado nos últimos 6 meses. O último commit de pybreaker foi em 25 de set. de 2026.
Para que posso usar pybreaker?
Proteger chamadas ao banco de dados contra falhas em cascata quando ele está indisponível Falhar rapidamente em chamadas a uma API HTTP instável de terceiros Registrar ou emitir alertas sobre mudanças no estado do circuito em serviços de produção
Como instalar pybreaker?
Instale o PyBreaker pelo PyPI: pip install pybreaker Crie um CircuitBreaker e proteja uma função com ele
Onde consigo pybreaker?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/danielfm/pybreaker

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados

Biblioteca leve de tolerância a falhas para Java, com decorators de circuit breaker, rate limiter, retry, bulkhead e time limiter para código funcional.

Backend e APIs#java#fault-tolerance#circuit-breaker
10,8 mil+3 esta semana1,5 milJavaApache-2.0Atualizado há 8 dias