# failsafe-lib/failsafe

Fault tolerance and resilience patterns for the JVM

Repository: https://github.com/failsafe-lib/failsafe
Canonical: https://ross.abutalabs.com/products/failsafe
Homepage: https://failsafe.dev
Language: Java
License: Apache-2.0
License Family: permissive
Topics: java, retry, resilience, timeout, rate-limiter, bulkhead, resiliency-patterns, circuit-breaker, fallback
Last push: 2025-12-28T01:41:28+00:00

## Health v2 (maintenance only)
Score: 59/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 59, release rhythm 35, longevity 100
- inputs: {"age_days": 4083, "days_push": 249, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 4309, forks 312 (observed 2026-08-28T04:08:41.742071+00:00)

## What it is
Failsafe is a lightweight, zero-dependency Java library for fault tolerance, wrapping executable logic with composable resilience policies such as Retry, CircuitBreaker, RateLimiter, Timeout, Bulkhead, and Fallback. It supports synchronous and asynchronous execution and integrates with libraries like OkHttp, Retrofit, Netty, RxJava, and Vert.x.

## Use cases
- retry failed network calls with backoff
- add a circuit breaker around flaky remote services
- rate limit outgoing requests to an API
- apply timeouts to slow operations
- limit concurrent executions with a bulkhead
- fall back to a backup connection on failure
- compose multiple resilience policies around one call

## When to choose
- you need zero-dependency fault tolerance on Java 8+
- you want to combine retry, circuit breaker, timeout, and rate limiting in one executor
- you need both sync and async execution with CompletableFuture support
- you use OkHttp, Retrofit, Netty, or reactive libraries and want resilience integration

## When to avoid
- you are not on the JVM
- you want annotation-based resilience like Spring Retry or Resilience4j annotations
- you need resilience for reactive streams only with no imperative API

## Facets
- artifact type: library
- maturity: active
- function: rate-limiting, error-handling, concurrency, http-client
- domain: developer-tools, backend, microservices, performance
- platform: jvm, cross-platform
- tags: retry, circuit-breaker, resilience-patterns, fault-tolerance, timeout, bulkhead, fallback, zero-dependency

## Member repositories
- failsafe-lib/failsafe (main) score 59

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:08:41.742071+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T18:21:48.211575+00:00, confidence not recorded.
  - readme: https://github.com/failsafe-lib/failsafe (fetched 2026-08-28T04:08:41.742071+00:00, sha f4206963f2ac)
  - homepage: https://failsafe.dev (fetched 2026-08-29T09:10:56.528312+00:00, sha ad4b8849ea84)
  - site_page: https://failsafe.dev/javadoc/core (fetched 2026-08-29T09:10:56.652927+00:00, sha add41a696dc5)
  - site_page: https://failsafe.dev/faqs (fetched 2026-08-29T09:10:56.843467+00:00, sha 628fb0d9da5e)
  - site_page: https://failsafe.dev/example-integrations (fetched 2026-08-29T09:10:56.946888+00:00, sha 71145ecf9491)
- Data as of 2026-08-30T08:39:29.467469+00:00.
