awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
resilience4j avatar

resilience4j/resilience4j

0
View on GitHub↗
10,689 stars·1,468 forks·Java·Apache-2.0·18 views

Resilience4j

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 capabilities cover the provision of fallback responses when primary operations fail and the use of a caching layer to store results of expensive operations. The library utilizes a registry-based system to manage unique resilience pattern instances and an event-driven streaming system for monitoring state transitions and operation results.

Features

  • Fault Tolerance - Provides a comprehensive suite of patterns to handle failures in distributed Java applications and prevent cascading crashes.
  • Circuit Breakers - Implements a circuit breaker that blocks calls to struggling services to allow them to recover.
  • Cascading Failure Preventions - Stops requests from hitting a failing service once a failure threshold is reached to prevent domino effects.
  • Transient Fault Recovery - Implements configurable retry policies with backoff strategies to recover from transient network or service errors.
  • Transient Error Recovery Policies - Ships configurable policies to attempt re-execution of failed operations to mitigate transient errors.
  • Function Decorators - Implements function decorators using Java 8 functional interfaces to intercept and manage execution flow.
  • Bulkheading - Provides bulkhead mechanisms to isolate system resources and prevent cascading failures through concurrency limiting.
  • Rate Limiting - Implements a token-bucket algorithm to cap the number of permitted executions within a specific timeframe.
  • Resilience Pattern Registries - Provides a centralized registry for configuring and monitoring unique resilience pattern instances across backend services.
  • Retry Policies - Provides a retry mechanism that repeats failed operations with configurable wait intervals and backoff algorithms.
  • Backoff Strategies - Implements configurable retry frameworks with advanced backoff policies to handle transient faults.
  • Configuration Registries - Ships a registry-based system to manage unique resilience pattern configurations across different service calls.
  • Circuit Breaking States - Implements a finite state machine to track circuit breaker transitions between closed, open, and half-open states.
  • Concurrency Limiters - Uses semaphores to restrict the number of active simultaneous executions to maintain system stability.
  • Failure Isolation Mechanisms - Uses semaphores and fixed thread pools to isolate system resources and prevent wide-scale exhaustion.
  • Timeout Enforcements - Implements automatic cancellation of tasks that exceed defined time thresholds to ensure system responsiveness.
  • Request Throttling - Limits the frequency and volume of requests to protect backend services from being overwhelmed.
  • Concurrency-Based Dependency Isolation - Prevents a single slow dependency from exhausting system threads using concurrency limits and timeouts.
  • Fallback Mechanisms - Returns alternative results or default values when a primary operation fails or is blocked by a circuit breaker.
  • Event Monitoring Streams - Provides a streaming system that publishes state transitions and execution results for external monitoring.
  • Event Monitoring Systems - Ships an event-driven streaming system that publishes state transitions and execution results for external monitoring.
  • Sliding Window Counters - Tracks operation results using sliding time windows to calculate real-time success and failure rates.
  • Microservices - Fault tolerance library for Java.
  • Distributed Systems - Functional fault tolerance library.
  • Resilience and Fault Tolerance - Fault tolerance library for Java applications.

Star history

Star history chart for resilience4j/resilience4jStar history chart for resilience4j/resilience4j

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does resilience4j/resilience4j do?

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.

What are the main features of resilience4j/resilience4j?

The main features of resilience4j/resilience4j are: Fault Tolerance, Circuit Breakers, Cascading Failure Preventions, Transient Fault Recovery, Transient Error Recovery Policies, Function Decorators, Bulkheading, Rate Limiting.

Which projects share features with resilience4j/resilience4j?

Projects with overlapping indexed features include: jhalterman/failsafe — Failsafe is a JVM resilience library providing a collection of fault tolerance patterns for Java applications. It… netflix/hystrix — Hystrix is a latency and fault tolerance library designed to prevent cascading failures in distributed systems. It… app-vnext/polly — Polly is a resilience and transient-fault-handling library for .NET applications. It provides a framework for defining… doocs/advanced-java — This project is a comprehensive Java backend engineering guide and technical reference focused on high-concurrency… alibaba/sentinel — Sentinel is a microservice flow control framework designed for managing traffic limits, distributed circuit breaking,… failsafe-lib/failsafe — Failsafe is a JVM fault tolerance library and resilience pattern framework. It provides a toolkit for implementing…

Projects sharing features with Resilience4j

These projects share indexed features with Resilience4j. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • jhalterman/failsafejhalterman avatar

    jhalterman/failsafe

    4,307View on 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
    View on GitHub↗4,307
  • netflix/hystrixNetflix avatar

    Netflix/Hystrix

    24,461View on 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
    View on GitHub↗24,461
  • app-vnext/pollyApp-vNext avatar

    App-vNext/Polly

    14,191View on GitHub↗

    Polly is a resilience and transient-fault-handling library for .NET applications. It provides a framework for defining and executing stability patterns that manage failures and resource exhaustion during operation execution. The library enables developers to compose complex resilience strategies through a fluent builder pattern, wrapping target operations in functional decorators. These policies intercept execution flow to apply automated recovery mechanisms, such as retries for temporary errors or circuit breakers that isolate unstable components by blocking requests. The framework supports

    C#circuit-breakercircuit-breaker-patterndotnet
    View on GitHub↗14,191
  • doocs/advanced-javadoocs avatar

    doocs/advanced-java

    78,987View on GitHub↗

    This project is a comprehensive Java backend engineering guide and technical reference focused on high-concurrency design, distributed systems, and microservices architecture. It provides detailed strategies for decomposing monolithic applications, managing service discovery, and implementing the architectural patterns required for scalable backend environments. The repository distinguishes itself through an extensive collection of big data algorithmic references and database scaling strategies. It covers memory-efficient techniques for analyzing massive datasets, such as Top-K element extrac

    Javaadvanced-javadistributed-search-enginedistributed-systems
    View on GitHub↗78,987
Compare all 30 related projects→