[[MicroProfile-Fault-Tolerance-SmallRye]]
= MicroProfile Fault Tolerance Subsystem Configuration

Support for https://microprofile.io/project/eclipse/microprofile-fault-tolerance[MicroProfile Fault Tolerance] is
provided as by the `microprofile-fault-tolerance-smallrye` subsystem.

[[required-extension-microprofile-fault-tolerance-smallrye]]
== Required Extension

This extension is not included by default in the standard configurations in the WildFly distribution.

You can add the extension to a configuration without it either by adding an
`<extension module="org.wildfly.extension.microprofile.fault-tolerance-smallrye"/>`
element to the XML or by using the following CLI operation:

[source,options="nowrap"]
----
[standalone@localhost:9990 /] /extension=org.wildfly.extension.microprofile.fault-tolerance-smallrye:add()
{"outcome" => "success"}

[standalone@localhost:9990 /] /subsystem=microprofile-fault-tolerance-smallrye:add()
{
    "outcome" => "success",
    "response-headers" => {
        "operation-requires-reload" => true,
        "process-state" => "reload-required"
    }
}
[standalone@localhost:9990 /] reload
----

The subsystem does not have any configurable elements.

== Specification

WildFly's MicroProfile Fault Tolerance subsystem implements MicroProfile 3.0.

This MicroProfile specification provides the following interceptor bindings:

* `@Timeout`
* `@Retry`
* `@Fallback`
* `@CircuitBreaker`
* `@Bulkhead`
* `@Asynchronous`

For usage please refer to MicroProfile Fault Tolerance 3.0 https://download.eclipse.org/microprofile/microprofile-fault-tolerance-3.0/microprofile-fault-tolerance-spec-3.0.html[specification].

== Configuration

Apart from configuration properties defined by the specification, the SmallRye implementation provides the following
configuration properties:

.SmallRye Fault Tolerance configuration properties
|===
|Name |Default |Description

|`io.smallrye.faulttolerance.mainThreadPoolSize`
|100
|Maximum number of threads in the thread pool.

|`io.smallrye.faulttolerance.mainThreadPoolQueueSize`
|-1 (unbounded)
|Size of the queue that the thread pool should use.

|===




== Component Reference

The MicroProfile Fault Tolerance implementation is provided by the SmallRye Fault Tolerance project.

****

* https://microprofile.io/project/eclipse/microprofile-fault-tolerance[MicroProfile Fault Tolerance]
* https://github.com/smallrye/smallrye-fault-tolerance[SmallRye Fault Tolerance]

****
