Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/vert-x3/vertx-circuit-breaker

A circuit breaker for Vert.x
https://github.com/vert-x3/vertx-circuit-breaker

async circuitbreaker java microservices vertx

Last synced: about 2 months ago
JSON representation

A circuit breaker for Vert.x

Awesome Lists containing this project

README

        

= Vert.x Circuit Breaker

image:https://github.com/vert-x3/vertx-circuit-breaker/actions/workflows/ci-5.x.yml/badge.svg["Build Status (5.x)",link="https://github.com/vert-x3/vertx-circuit-breaker/actions/workflows/ci-5.x.yml"]
image:https://github.com/vert-x3/vertx-circuit-breaker/actions/workflows/ci-4.x.yml/badge.svg["Build Status (4.x)",link="https://github.com/vert-x3/vertx-circuit-breaker/actions/workflows/ci-4.x.yml"]

Vert.x Circuit Breaker is an implementation of the Circuit Breaker _pattern_ for Vert.x. More details on this pattern on https://en.wikipedia.org/wiki/Circuit_breaker_design_pattern

It keeps track of the
number of failures and _opens the circuit_ when a threshold is reached. Optionally, a fallback is executed.

Supported failures are:

* failures reported by your code
* exception thrown by your code
* uncompleted futures (timeout)

Operations guarded by a circuit breaker are intended to be non-blocking and asynchronous in order to benefit from
the Vert.x execution model.

== Using the Vert.x Circuit Breaker

To use the Vert.x Circuit Breaker, add the following dependency to the _dependencies_ section of your build
descriptor:

* Maven (in your `pom.xml`):

----

io.vertx
vertx-circuit-breaker
$VERSION

----

* Gradle (in your `build.gradle` file):

----
compile 'io.vertx:vertx-circuit-breaker:$VERSION'
----

== Using the circuit breaker

The manual is available from:

* http://vertx.io/docs/vertx-circuit-breaker/java/[Java documentation]
* http://vertx.io/docs/vertx-circuit-breaker/js/[JavaScript documentation]
* http://vertx.io/docs/vertx-circuit-breaker/kotlin/[Kotlin documentation]
* http://vertx.io/docs/vertx-circuit-breaker/groovy/[Groovy documentation]
* http://vertx.io/docs/vertx-circuit-breaker/ruby/[Ruby documentation]