OSS TanbouSign in with GitHub

Add circuit breaking, retries, and rate limits to Java service calls

About these scores

OSS scale score is an unbounded metric that log-compresses and weights Stars, Watchers, Forks, and Contributors. Discovery score is the current OSS scale score minus the score at discovery. Update pace is commits in the last 30 days, growth momentum is the OSS scale score difference within the recent observation window, and OSS health is a 0–100 rating based on available recency, Community Health, and release data.

Stars
10,776
Primary language
Java
License
Apache-2.0
Repository last updated
Sep 23, 2026
On this page

Overview

This Java library limits cascading failures when an application calls remote services. You can select only the CircuitBreaker, Retry, RateLimiter, Bulkhead, and TimeLimiter modules you need, then compose them around lambdas or method references.

Features and best fit

Based on official documentation; not hands-on tested · Content checked:

Key features

Compose fault-tolerance patterns around individual calls

Higher-order decorators apply CircuitBreaker, Retry, RateLimiter, and Bulkhead behavior to functional interfaces. Multiple decorators can protect one call, with fallbacks and timeout handling available for asynchronous work.

Sources: [1]

Add only the modules required by the application

Core modules cover circuit breaking, rate limiting, concurrency isolation, retries, timeouts, and result caching. Add-ons integrate with Spring Boot, Micrometer, Feign, Kotlin, and other application stacks.

Sources: [1]

Best fit

Protect each remote service as a separate failure domain

It fits Java applications that call several backends such as payment, inventory, and notification services. The official README recommends unique instances per protected backend so failure state, thresholds, concurrency limits, and metrics remain isolated.

Sources: [1]

Before adoption

Pin the Java line and decorator order before rollout

The v2.4.0 build.gradle sets Java sourceCompatibility and targetCompatibility to 17, while the included Wrapper uses Gradle 8.10. Source verification therefore needs a JDK environment that can launch Gradle 8.10 and compile for Java 17. The README also states that Resilience4j 3 requires Java 21. In Spring Boot 3, the default aspect order can place Retry outside CircuitBreaker, so configure and test the order explicitly.

Sources: [1][3][4][2]

Official sources

  1. [1]Resilience4j v2.4.0 README(2026-10-04)
  2. [2]Resilience4j v2.4.0 Spring Boot 3 README(2026-10-04)
  3. [3]Resilience4j v2.4.0 Gradle build configuration(2026-10-04)
  4. [4]Resilience4j v2.4.0 Gradle Wrapper configuration(2026-10-04)
  5. [5]Resilience4j v2.4.0 release(2026-10-04)
  6. [6]Resilience4j GitHub repository metadata(2026-10-04)
  7. [7]Resilience4j v2.4.0 license(2026-10-04)
Supplemental curator note

When comparing libraries, look beyond the pattern count and check whether state and metrics can stay isolated per protected backend. Spring Boot adopters should also review Retry and CircuitBreaker aspect order.

Try it in 3 steps

  1. 1

    Clone the v2.4.0 source

    Make a shallow clone of the fixed tag and keep the same directory for the following Gradle Wrapper commands.

    git clone --depth 1 --branch v2.4.0 https://github.com/resilience4j/resilience4j.git && cd resilience4j
  2. 2

    Check the JDK and Wrapper, then test CircuitBreaker

    Version 2.4.0 includes the Gradle 8.10 Wrapper and compiles for Java 17. Verify the environment with JDK 17 before running the circuit-breaker tests.

    java -version && ./gradlew --version && ./gradlew :resilience4j-circuitbreaker:test
  3. 3

    Run the Retry tests

    Test the retry module from the same checkout to inspect a second independently selectable capability.

    ./gradlew :resilience4j-retry:test
Check the official README

Growth

Growth trends · Last 30 days

10,776 Stars

Trend data is still being collected.

Development activity

Last 90 days · weekly

Commits (last 30 days)
4
Open PRs
57

Development activity is still being collected.

Built with

Categories and tags

GitHub data

GitHub dataView detailed GitHub data

GitHub Topics

  • resilience
  • circuitbreaker
  • rate-limiter
  • retry
  • bulkhead
  • metrics
Stars
10,776
Forks
1,514
Watchers
215
Open issues
261
Contributors
241
Owner type
Organization
Primary language
Java
License
Apache-2.0
Repository last updated
Sep 23, 2026
Write a related article

Share a guide or use case for this OSS in Markdown. Articles are published after administrator approval.

Report incorrect information

Tell us if any listing information is incorrect or outdated.

After reading this page, do you know what to do next?