Resilience4j - Fault tolerance library designed for Java8 and functional programming

  •        965

Resilience4j is a lightweight fault tolerance library inspired by Netflix Hystrix, but designed for Java 8 and functional programming. Resilience4j provides higher-order functions (decorators) to enhance any functional interface, lambda expression or method reference with a Circuit Breaker, Rate Limiter, Retry or Bulkhead. You can stack more than one decorator on any functional interface, lambda expression or method reference. The advantage is that you have the choice to select the decorators you need and nothing else.

https://github.com/resilience4j/resilience4j

Tags
Implementation
License
Platform

   




Related Projects

cockatiel - A resilience and transient-fault-handling library that allows developers to express policies such as Backoff, Retry, Circuit Breaker, Timeout, Bulkhead Isolation, and Fallback

  •    TypeScript

I recommend reading the Polly wiki for more information for details and mechanics around the patterns we provide. There are two events, onSuccess/onFailure, that are called when a call succeeds or fails. Note that onFailure only is called if a handled error is thrown.

Polly - Polly is a

  •    CSharp

Polly is a .NET resilience and transient-fault-handling library that allows developers to express policies such as Retry, Circuit Breaker, Timeout, Bulkhead Isolation, and Fallback in a fluent and thread-safe manner.Polly targets .NET 4.0, .NET 4.5 and .NET Standard 1.1 (coverage: .NET Core, Mono, Xamarin.iOS, Xamarin.Android, UWP, WP8.1+).

Hystrix - Hystrix is a latency and fault tolerance library designed to isolate points of access to remote systems, services and 3rd party libraries, stop cascading failure and enable resilience in complex distributed systems where failure is inevitable

  •    Java

Hystrix is a latency and fault tolerance library designed to isolate points of access to remote systems, services and 3rd party libraries, stop cascading failure and enable resilience in complex distributed systems where failure is inevitable.See the Wiki for full documentation, examples, operational details and other information.

hystrix-go - Netflix's Hystrix latency and fault tolerance library, for Go

  •    Go

Hystrix is a great project from Netflix.Hystrix is a latency and fault tolerance library designed to isolate points of access to remote systems, services and 3rd party libraries, stop cascading failure and enable resilience in complex distributed systems where failure is inevitable.

toxy - Hackable HTTP proxy for resiliency testing and simulated network conditions

  •    Javascript

Hackable HTTP proxy to simulate server failure scenarios, resiliency and unexpected network conditions, built for node.js.It was mainly designed for failure resistance testing, when toxy becomes particularly useful in order to cover fault tolerance and resiliency capabilities of a system, especially in disruption-tolerant networks and service-oriented architectures, where toxy may act as MitM proxy among services in order to inject failure.


SQL Fault Retry Provider

  •    

The Fault Retry sample demonstrates recommended practices for creating high availability database applications using SQL Server mirroring technology in the back end.

kiali - Kiali project, observability for the Istio service mesh

  •    Go

A Microservice Architecture breaks up the monolith into many smaller pieces that are composed together. Patterns to secure the communication between services like fault tolerance (via timeout, retry, circuit breaking, etc.) have come up as well as distributed tracing to be able to see where calls are going. A service mesh can now provide these services on a platform level and frees the application writers from those tasks. Routing decisions are done at the mesh level.

Java Monitoring Client Library - A java idiomatic monitoring client for collecting metrics

  •    Java

This library provides an API that is powerful and java idiomatic for configuring and publishing application metrics. A reference implementation using Stackdriver Monitoring API v3 is included, but other monitoring backend implementations can also be used. Most of other monitoring libraries available are low-level and are tied directly to the backend. This library provides type safety, retry logic and an backend-agnostic approach to Java metrics instrumentation.

tenacity - Retrying library for Python

  •    Python

Tenacity is an Apache 2.0 licensed general-purpose retrying library, written in Python, to simplify the task of adding retry behavior to just about anything. It originates from a fork of retrying. The simplest use case is retrying a flaky function whenever an Exception occurs until a value is returned.

rspec-retry - retry randomly failing rspec example

  •    Ruby

RSpec::Retry adds a :retry option for intermittently failing rspec examples. If an example has the :retry option, rspec will retry the example the specified number of times until the example succeeds. You can call ex.run_with_retry(opts) on an individual example.

guava-retrying - This is a small extension to Google's Guava library to allow for the creation of configurable retrying strategies for an arbitrary function call, such as something that talks to a remote service with flaky uptime

  •    Java

##What is this? The guava-retrying module provides a general purpose method for retrying arbitrary Java code with specific stop, retry, and exception handling capabilities that are enhanced by Guava's predicate matching. This is a fork of the excellent RetryerBuilder code posted here by Jean-Baptiste Nizet (JB). I've added a Gradle build for pushing it up to my little corner of Maven Central so that others can easily pull it into their existing projects with minimal effort. It also includes exponential and Fibonacci backoff WaitStrategies that might be useful for situations where more well-behaved service polling is preferred.

bottleneck - Task scheduler and rate limiter

  •    Javascript

Bottleneck is a lightweight and efficient Task Scheduler and Rate Limiter for Node.js and the browser. When dealing with services with limited resources, it's important to ensure that they don't become overloaded.Bottleneck is an easy solution as it does not add much complexity to your code.

node-rate-limiter - A generic rate limiter for node

  •    Javascript

Provides a generic rate limiter for node.js. Useful for API clients, web crawling, or other tasks that need to be throttled. Two classes are exposed, RateLimiter and TokenBucket. TokenBucket provides a lower level interface to rate limiting with a configurable burst rate and drip rate. RateLimiter sits on top of the token bucket and adds a restriction on the maximum number of tokens that can be removed each interval to comply with common API restrictions like "150 requests per hour maximum". A synchronous method, tryRemoveTokens(), is available in both RateLimiter and TokenBucket. This will return immediately with a boolean value indicating if the token removal was successful.

retry - A tiny library for retrying failing operations.

  •    PHP

A tiny library for retrying failing operations. Since the network is reliable, things should always work. Am I right? For those cases when they don't, there is retry.

Ribbon - IPC library with built in software load balancers

  •    Java

Ribbon is a client side IPC library that is battle-tested in cloud. It provides Load balancing, Fault tolerance, Multiple protocol (HTTP, TCP, UDP), support in an asynchronous and reactive model Caching and batching.

spring-retry

  •    Java

Spring Retry provides an abstraction around retrying failed operations, with an emphasis on declarative control of the process and policy-based bahaviour that is easy to extend and customize. For instance, you can configure a plain POJO operation to retry if it fails, based on the type of exception, and with a fixed or exponential backoff.

resque-retry - A resque plugin; provides retry, delay and exponential backoff support for resque jobs

  •    Ruby

A Resque plugin. Requires Resque ~> 1.25 & resque-scheduler ~> 4.0. This gem provides retry, delay and exponential backoff support for resque jobs.

node-retry - Abstraction for exponential and custom retry strategies for failed operations.

  •    Javascript

Abstraction for exponential and custom retry strategies for failed operations. This module has been tested and is ready to be used.

golimit - Golimit is Uber ringpop based distributed and decentralized rate limiter

  •    Go

Golimit is Uber ringpop based distributed and decentralized rate limiter. It is horizontally scalable and is based on shared nothing architecture. Every node in system is capable of handling read and writes of counters. It is designed to offer sub milliseconds latency to caller application. Recommended deployment topology is sidecar model. Every golimit node keeps local and global counter for api counter and local value is synchronized with other nodes on configurable periodic interval or at defined threshold. Http server provides http interface to increment counter against any arbitrary Key string. It also exposes admin api to manage global configurations.






We have large collection of open source products. Follow the tags from Tag Cloud >>


Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.