:microprofile-fault-tolerance: https://github.com/eclipse/microprofile-fault-tolerance/

image:https://semaphoreci.com/api/v1/smallrye/smallrye-fault-tolerance/branches/master/badge.svg["Semaphore CI", link="https://semaphoreci.com/smallrye/smallrye-fault-tolerance"]
image:https://sonarcloud.io/api/project_badges/measure?project=smallrye_smallrye-fault-tolerance&metric=alert_status["Quality Gate Status", link="https://sonarcloud.io/dashboard?id=smallrye_smallrye-fault-tolerance"]
image:https://img.shields.io/github/license/thorntail/thorntail.svg["License", link="http://www.apache.org/licenses/LICENSE-2.0"]

= SmallRye Fault Tolerance

SmallRye Fault Tolerance is an implementation of {microprofile-fault-tolerance}[Eclipse MicroProfile Fault Tolerance.

The implementation depends on the xref:_hystrix[Hystrix fraction], which is added transitively into your application.

== Bulkhead fallback rejection

If you use the semaphore-style `@Bulkhead` pattern with a `@Fallback` logic to limit the number of concurrent requests, the invocation may still result in a `BulkheadException` if the maximum concurrent limit for the `HystrixCommand.getFallback()` method is reached.
To avoid that, set the `swarm.hystrix.command.default.fallback.isolation.semaphore.maxConcurrentRequests` property to increase the limit.


== Instructions

Compile and install this project:

[source,bash]
----
mvn clean install
----

=== Project structure

* link:implementation[] - Implementation of the Eclipse MicroProfile Fault Tolerance API.
* link:tck[] - Test suite to run the implementation against the Eclipse MicroProfile Fault Tolerance TCK.
* link:docs[] - Project documentation.

=== Links

* http://github.com/smallrye/smallrye-fault-tolerance/[Project Homepage]
* {microprofile-fault-tolerance}[Eclipse MicroProfile Fault Tolerance]

