awesome-repositories.com
Blog
awesome-repositories.com

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetÀ proposNotre méthodologiePresseServeur MCP
Mentions légalesConfidentialitéConditions d'utilisation
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
failsafe-lib avatar

failsafe-lib/failsafe

0
View on GitHub↗
4,307 stars·310 forks·Java·Apache-2.0·3 vuesfailsafe.dev↗

Failsafe

Failsafe est une bibliothèque de tolérance aux pannes et un framework de modèles de résilience pour la JVM. Elle fournit une boîte à outils pour implémenter des disjoncteurs (circuit breakers), des limiteurs de débit (rate limiters) et d'autres modèles de stabilité au sein des applications Java pour prévenir les défaillances en cascade dans les systèmes distribués.

Le projet se distingue par son pipeline d'exécution basé sur des politiques, permettant de composer plusieurs modèles de résilience en un flux séquentiel. Il propose un disjoncteur à machine d'état pour gérer le rétablissement des services et un limiteur de débit à seau percé (leaky-bucket) pour contrôler la fréquence des opérations.

La bibliothèque couvre un large éventail de fonctionnalités, notamment l'isolation des ressources via des bulkheads, une logique de nouvelle tentative automatisée avec provisionnement de repli, et des timeouts d'exécution. Elle fournit également des mécanismes pour l'exécution de tâches asynchrones et la gestion de pipelines non bloquants via des completion stages.

La surveillance et l'observabilité sont intégrées via des écouteurs d'événements et des exports de métriques qui suivent les transitions d'état des circuits et les jalons d'exécution.

Features

  • Resilience Policy Pipelines - Provides a sequential pipeline of configurable policies to manage retries, timeouts, and circuit breaking.
  • JVM Implementations - Provides a comprehensive fault tolerance library specifically for JVM applications.
  • JVM Fault Tolerance Libraries - Provides a comprehensive toolkit for implementing resilience patterns like retries and circuit breakers within JVM applications.
  • API Resilience - Implements fault tolerance policies to ensure the reliability of asynchronous API communications during service disruptions.
  • Configurable Retry Engines - Repeats failed operations using a configurable engine with maximum attempts, delays, and jitter.
  • Execution Rate Limiters - Controls the frequency and concurrency of operations to prevent system overload and comply with downstream limits.
  • Execution Timeout Management - Implements execution timeouts to forcefully terminate operations that exceed a defined duration.
  • Leaky Bucket Implementations - Implements a leaky-bucket rate limiter to control operation frequency and prevent system overload.
  • Asynchronous Task Execution - Executes tasks in the background using resilience policies to prevent the main execution thread from blocking.
  • Asynchronous Execution Managers - Provides a toolkit for handling non-blocking asynchronous pipelines and completion stages with integrated resilience policies.
  • Cascading Failure Preventions - Provides bulkheads and rate limiting to prevent a failure in one service from triggering a domino effect across distributed systems.
  • Concurrent Call Limits - Limits concurrent calls to specific components via bulkheads to prevent failures from cascading across the system.
  • Circuit Breakers - Stops execution of calls to an unhealthy service after a failure threshold is met to allow for recovery.
  • Concurrent Execution Limiters - Limits the number of simultaneous active calls to prevent resource exhaustion.
  • Fault-Tolerant Fallbacks - Returns default values or computes alternative results when a primary execution fails to complete successfully.
  • Fault Tolerance Implementation - Implements a toolkit of resilience patterns to ensure system continuity during remote service outages.
  • Rate Limiters - Implements application-level rate limiting using token bucket and fixed window algorithms.
  • Bulkheading - Provides bulkheading to limit concurrent calls and prevent single-service failures from exhausting system resources.
  • Resilience Patterns - Provides a framework for applying resilience patterns like circuit breakers, timeouts, and bulkheads.
  • Circuit Breaking States - Implements a state-machine circuit breaker that transitions between open, closed, and half-open states.
  • Event Listeners - Offers programmatic hooks to trigger actions upon task completion, failure, or execution cycles.
  • Policy-Wrapped Stages - Wraps completion stage suppliers to apply fault tolerance policies to asynchronous pipelines.
  • Exception Filters - Specifies which exceptions or business result conditions trigger a resilience policy instead of using global defaults.
  • Future Policy Wrapping - Wraps completion stages and futures to apply fault tolerance policies across non-blocking execution flows.
  • Reactive Client Integrations - Integrates fault tolerance policies into non-blocking, reactive communication flows for asynchronous APIs.
  • Asynchronous Task Cancellation - Interrupts running asynchronous operations by checking cancellation flags or interrupting threads to prevent wasted resources.
  • Manual State Overrides - Allows forcing the circuit breaker into open or closed states independently of automatic policy triggers.
  • Event-Driven Hook Systems - Triggers registered listeners during policy state transitions and execution milestones for real-time health visibility.
  • Fault Tolerance Policies - Manages execution state by recording results to determine if an operation requires a retry based on policies.
  • Custom Resilience Policies - Enables the creation of specialized fault tolerance behaviors through custom policy and executor implementations.
  • Request Timeout Management - Enforces maximum durations for remote network operations to prevent indefinite blocking and resource exhaustion.
  • Reusable Policy Configurations - Resilience4j saves specific combinations of resilience policies to apply them consistently across different parts of an application.
  • Asynchronous Schedulers - Defines thread pools and custom schedulers to manage the timing and execution of asynchronous tasks.
  • Metrics Exporters - Exposes a monitoring interface to export performance and state metrics for fault tolerance policies.
  • Retry Metrics Monitoring - Provides telemetry and notifications for retry attempt failures and scheduling events.

Historique des stars

Graphique de l'historique des stars pour failsafe-lib/failsafeGraphique de l'historique des stars pour failsafe-lib/failsafe

Recherche par IA

Explorez plus de dépôts awesome

Décrivez vos besoins en langage naturel — l'IA classe des milliers de projets open source sélectionnés par pertinence.

Start searching with AI

Alternatives open source à Failsafe

Projets open source similaires, classés selon le nombre de fonctionnalités partagées avec Failsafe.
  • jhalterman/failsafeAvatar de jhalterman

    jhalterman/failsafe

    4,307Voir sur GitHub↗

    Failsafe is a JVM resilience library providing a collection of fault tolerance patterns for Java applications. It functions as an asynchronous execution wrapper that runs tasks in the background and returns futures to prevent thread blocking. The library allows for the composition of resilience policies, enabling multiple patterns to be stacked into a sequential pipeline. It includes specific implementations for circuit breaking to prevent system overload, rate limiting to control traffic flow, and a framework for managing retries and fallbacks. Capability areas cover traffic management thro

    Java
    Voir sur GitHub↗4,307
  • afex/hystrix-goAvatar de afex

    afex/hystrix-go

    4,418Voir sur GitHub↗

    This is a fault tolerance library for Go designed to prevent cascading failures by isolating unhealthy remote services using the circuit breaker pattern. It serves as a resilience tool for managing request timeouts, defining fallback logic, and protecting remote systems from overloading. The library differentiates itself through the integration of a health metrics exporter that streams real-time performance and status data of remote connections to external monitoring tools. It combines this observability with a circuit breaker state machine that tracks success and failure rates to block calls

    Go
    Voir sur GitHub↗4,418
  • netflix/hystrixAvatar de Netflix

    Netflix/Hystrix

    24,461Voir sur GitHub↗

    Hystrix is a latency and fault tolerance library designed to prevent cascading failures in distributed systems. It functions as a circuit breaker implementation that monitors failure thresholds and opens circuits to isolate remote calls when downstream services degrade. The project distinguishes itself by providing multiple isolation mechanisms, utilizing dedicated thread pools and semaphores to ensure that latency in one dependency does not saturate the entire system. It also features a request collapsing and batching engine that groups concurrent calls into single executions to reduce the t

    Java
    Voir sur GitHub↗24,461
  • resilience4j/resilience4jAvatar de resilience4j

    resilience4j/resilience4j

    10,689Voir sur GitHub↗

    Resilience4j is a fault tolerance library for Java 8 applications designed to handle failures in distributed systems. It provides a comprehensive suite of resilience patterns including resource isolation, request throttling, retries, and timeouts. The project implements specific stability mechanisms such as circuit breakers to prevent cascading failures, bulkheads for system resource isolation, and rate limiters to cap execution rates. It also includes a retry framework with backoff policies and timeout enforcement to manage transient faults and maximum execution durations. Additional capabi

    Javabulkheadcircuitbreakermetrics
    Voir sur GitHub↗10,689
Voir les 30 alternatives à Failsafe→

Questions fréquentes

Que fait failsafe-lib/failsafe ?

Failsafe est une bibliothèque de tolérance aux pannes et un framework de modèles de résilience pour la JVM. Elle fournit une boîte à outils pour implémenter des disjoncteurs (circuit breakers), des limiteurs de débit (rate limiters) et d'autres modèles de stabilité au sein des applications Java pour prévenir les défaillances en cascade dans les systèmes distribués.

Quelles sont les fonctionnalités principales de failsafe-lib/failsafe ?

Les fonctionnalités principales de failsafe-lib/failsafe sont : Resilience Policy Pipelines, JVM Implementations, JVM Fault Tolerance Libraries, API Resilience, Configurable Retry Engines, Execution Rate Limiters, Execution Timeout Management, Leaky Bucket Implementations.

Quelles sont les alternatives open-source à failsafe-lib/failsafe ?

Les alternatives open-source à failsafe-lib/failsafe incluent : jhalterman/failsafe — Failsafe is a JVM resilience library providing a collection of fault tolerance patterns for Java applications. It… afex/hystrix-go — This is a fault tolerance library for Go designed to prevent cascading failures by isolating unhealthy remote services… netflix/hystrix — Hystrix is a latency and fault tolerance library designed to prevent cascading failures in distributed systems. It… resilience4j/resilience4j — Resilience4j is a fault tolerance library for Java 8 applications designed to handle failures in distributed systems.… linkedin/school-of-sre — This project is a comprehensive educational resource and curriculum focused on site reliability engineering,… jd/tenacity — Tenacity is a Python retry library and fault tolerance framework designed to automatically re-execute failing…