All Projects → svroonland → Rezilience

svroonland / Rezilience

ZIO-native utilities for making resilient distributed systems

Programming Languages

scala
5932 projects

Projects that are alternatives of or similar to Rezilience

Ganesha
🐘 A Circuit Breaker pattern implementation for PHP applications.
Stars: ✭ 384 (+540%)
Mutual labels:  circuit-breaker, fault-tolerance
Brakes
Hystrix compliant Node.js Circuit Breaker Library
Stars: ✭ 255 (+325%)
Mutual labels:  circuit-breaker, fault-tolerance
Pysyncobj
A library for replicating your python class between multiple servers, based on raft protocol
Stars: ✭ 468 (+680%)
Mutual labels:  fault-tolerance
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. Inspired by .NET Polly.
Stars: ✭ 993 (+1555%)
Mutual labels:  circuit-breaker
Distributed Consensus Reading List
A long list of academic papers on the topic of distributed consensus
Stars: ✭ 803 (+1238.33%)
Mutual labels:  fault-tolerance
Samples
Steeltoe samples and reference application collection
Stars: ✭ 586 (+876.67%)
Mutual labels:  circuit-breaker
Sample Camel Spring Boot
three samples in different branches that illustrates usage of apache camel as microservice framework providing integration with consul, hystrix, ribbon and other tools
Stars: ✭ 24 (-60%)
Mutual labels:  circuit-breaker
Service Pattern Go
Simple clean Go REST API architecture with dependency injection and mocking example, following SOLID principles.
Stars: ✭ 449 (+648.33%)
Mutual labels:  circuit-breaker
Circuit Breaker Monad
Circuit Breaker pattern as a monad
Stars: ✭ 52 (-13.33%)
Mutual labels:  circuit-breaker
Lizardfs
LizardFS is an Open Source Distributed File System licensed under GPLv3.
Stars: ✭ 793 (+1221.67%)
Mutual labels:  fault-tolerance
Bond Cni
Bond-cni is for fail-over and high availability of networking in cloudnative orchestration
Stars: ✭ 36 (-40%)
Mutual labels:  fault-tolerance
Guard
NOT MAINTAINED! A generic high performance circuit breaker & proxy server written in Go
Stars: ✭ 745 (+1141.67%)
Mutual labels:  circuit-breaker
Steeltoe
Steeltoe .NET Core Components: CircuitBreaker, Configuration, Connectors, Discovery, Logging, Management, and Security
Stars: ✭ 612 (+920%)
Mutual labels:  circuit-breaker
Breaker
Circuit breaker for HTTP requests in Elixir
Stars: ✭ 30 (-50%)
Mutual labels:  circuit-breaker
Opossum
Node.js circuit breaker - fails fast ⚡️
Stars: ✭ 473 (+688.33%)
Mutual labels:  circuit-breaker
Elixirbooks
List of Elixir books
Stars: ✭ 1,021 (+1601.67%)
Mutual labels:  fault-tolerance
Chronos
Fault tolerant job scheduler for Mesos which handles dependencies and ISO8601 based schedules
Stars: ✭ 4,303 (+7071.67%)
Mutual labels:  fault-tolerance
Istio
Connect, secure, control, and observe services.
Stars: ✭ 28,970 (+48183.33%)
Mutual labels:  circuit-breaker
Luffy
Luffy is a simple resilience and transient-fault handling library
Stars: ✭ 19 (-68.33%)
Mutual labels:  circuit-breaker
Http
A smart, simple and fault-tolerant HTTP client for sending and receiving JSON and XML
Stars: ✭ 53 (-11.67%)
Mutual labels:  fault-tolerance

Rezilience

rezilience is a ZIO-native collection of policies for making asynchronous systems more resilient to failures.

It is inspired by Polly, Resilience4J and Akka.

It consists of these policies:

  • CircuitBreaker
  • Bulkhead
  • RateLimiter
  • Retry
  • Timeout

Features / Design goals

  • Type-safety: all errors that can result from any of the rezilience policies are encoded in the method signatures, so no unexpected RuntimeExceptions.
  • Support for your own error types (the E in ZIO[R, E, A]) instead of requiring your effects to have Exception as error type
  • Lightweight: rezilience uses only ZIO fibers and will not create threads or block
  • Resource-safe: built on ZIO's ZManaged, any allocated resources are cleaned up safely after use.
  • Interrupt safe: interruptions of effects wrapped by rezilience policies are handled properly.
  • Thread-safe: all policies are safe under concurrent use.
  • ZIO integration: some policies take for example ZIO Schedules and rezilience tries to help type inference using variance annotations
  • Metrics: all policies (will) provide usage metrics for monitoring purposes
  • Composable: policies can be composed into one overall policy
  • Discoverable: no syntax extensions or implicit conversions, just plain scala

Documentation

Documentation

Installation

Sonatype Nexus (Releases) Sonatype Nexus (Snapshots)

Add to your build.sbt:

libraryDependencies += "nl.vroste" %% "rezilience" % "<version>"

Used by

If you are using this library and find it useful, please consider adding your company or project to the list below!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].