Una biblioteca ligera de tolerancia a fallos para Java que ofrece decoradores de circuit breaker, limitador de tasa, reintentos, bulkhead y límite de tiempo para código funcional.
danielfm/pybreaker
Implementación en Python del patrón Circuit Breaker que detiene las llamadas a dependencias que fallan para proteger el resto del sistema.
- Estrellas
- 700
- Forks
- 96
- Issues abiertos
- 28
- Último commit
- el mes pasado
¿Qué es?
PyBreaker envuelve las llamadas a puntos de integración poco fiables, como bases de datos, colas o servicios externos. Tras alcanzar un número configurable de fallos consecutivos, el circuito se abre y las llamadas posteriores fallan de inmediato, en lugar de esperar a que responda una dependencia averiada. Cuando vence el tiempo de espera para el reinicio, se permite pasar la siguiente llamada para comprobar si la dependencia se ha recuperado.
El patrón Circuit Breaker se puede aplicar como decorador, mediante una llamada directa o como gestor de contexto. Permite excluir excepciones de negocio del recuento de fallos, usar varios listeners de eventos y proteger funciones generadoras. El estado se puede consultar y modificar en tiempo de ejecución mediante propiedades y métodos.
El estado se puede mantener en memoria o almacenar en Redis, con un espacio de nombres independiente para cada circuit breaker. También incluye compatibilidad opcional con coroutines asíncronas de Tornado. La biblioteca requiere Python 3.10 o posterior.
Funciones clave
- 01Umbral de fallos y tiempo de espera para el reinicio configurables
- 02Excluye excepciones de negocio del recuento de fallos por tipo o mediante una función invocable
- 03Varios listeners de eventos por circuit breaker
- 04Puede proteger funciones generadoras
- 05Almacenamiento opcional del estado en Redis
- 06Compatibilidad opcional con llamadas asíncronas de Tornado
Casos de uso
- Proteger las llamadas a bases de datos frente a fallos en cascada cuando la base de datos no está disponible
- Fallar rápidamente en las llamadas a una API HTTP inestable de terceros
- Registrar o generar alertas ante cambios en el estado del circuito en servicios de producción
Inicio rápido
- 1
Instala PyBreaker desde PyPI
pip install pybreaker - 2
Crea un CircuitBreaker y protégelo con una función
Antes de usarlo
- Requiere Python 3.10 o posterior.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es pybreaker?
- Implementación en Python del patrón Circuit Breaker que detiene las llamadas a dependencias que fallan para proteger el resto del sistema. PyBreaker envuelve las llamadas a puntos de integración poco fiables, como bases de datos, colas o servicios externos. Tras alcanzar un número configurable de fallos consecutivos, el circuito se abre y las llamadas posteriores fallan de inmediato, en lugar de esperar a que responda una dependencia averiada. Cuando vence el tiempo de espera para el reinicio, se permite pasar la siguiente llamada para comprobar si la dependencia se ha recuperado.
- ¿pybreaker es gratuito? ¿Qué licencia tiene?
- pybreaker es open source bajo la licencia BSD-3-Clause. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿pybreaker sigue mantenido?
- Actualizado en los últimos 6 meses. El último commit de pybreaker fue el 25 sept 2026.
- ¿Para qué puedo usar pybreaker?
- Proteger las llamadas a bases de datos frente a fallos en cascada cuando la base de datos no está disponible Fallar rápidamente en las llamadas a una API HTTP inestable de terceros Registrar o generar alertas ante cambios en el estado del circuito en servicios de producción
- ¿Cómo se instala pybreaker?
- Instala PyBreaker desde PyPI: pip install pybreaker Crea un CircuitBreaker y protégelo con una función
- ¿Dónde consigo pybreaker?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/danielfm/pybreaker
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Framework de Go para microservicios web y RPC, con funciones de resiliencia integradas y un generador de código goctl basado en especificaciones .api.
Implementación de Spring Cloud que integra aplicaciones Spring Cloud con Polaris de Tencent para el descubrimiento y la gobernanza de servicios.
Una service mesh de código abierto que añade gestión del tráfico, seguridad y observabilidad a los microservicios con pocos cambios en el código o ninguno.
Backend ligero de mensajería instantánea escrito en Go puro, con mensajes privados y difusión en salas por WebSocket y TCP.
Base de conocimiento para preparar entrevistas de Java backend: concurrencia, sistemas distribuidos, microservicios y big data.