Skip to main content

MicroProfile Fault Tolerance 4.1

MicroProfile Fault Tolerance defines an easy-to-use and flexible system for building resilient applications. Fault tolerance is about leveraging different strategies to guide the execution and result of some logic. Retry policies, bulkheads, and circuit breakers are popular concepts in this area. They dictate whether and when executions should take place, and fallbacks offer an alternative result when an execution does not complete successfully. 

As mentioned above, the Fault Tolerance specification is to focus on the following aspects:

  • Timeout: Define a duration for timeout
  • Retry: Define a criteria on when to retry
  • Fallback: provide an alternative solution for a failed execution.
  • CircuitBreaker: offer a way of fail fast by automatically failing execution to prevent the system overloading and indefinite wait or timeout by the clients.
  • Bulkhead: isolate failures in part of the system while the rest part of the system can still function.

As a consequence, this specification offers the following annotations:

  • @Timeout
  • @Retry
  • @Fallback
  • @CircuitBreaker
  • @Bulkhead
  • @Asynchronous

The main design is to separate execution logic from execution. The execution can be configured with fault tolerance policies, such as RetryPolicy, fallback, Bulkhead and CircuitBreaker.

Functional changes

A full list of changes delivered in the 4.1 release can be found at MicroProfile Fault Tolerance 4.1 Milestone.

Incompatible Changes

No.

API/SPI Changes

No.

Specification changes

  • Work with MicroProfile Telemetry Metrics (#622)

Other Changes

    • Removed unmanaged threads in TCK (#634)

Light Maven coordinates

<dependency>

  <groupId>org.eclipse.microprofile.fault-tolerance</groupId>

  <artifactId>microprofile-fault-tolerance-api</artifactId>

  <version>4.1</version>

</dependency>

Scope

Released

Released

Details

TCK

Compatible Implementations

Open Liberty

Product
Java version
Open Liberty - 24.0.0.9-beta-cl240920240801-0303
Java 11, 17 and 21

Ballots

Plan Review

The Specification Committee Ballot concluded successfully on Thu, 28 Mar 2024 with the following results.

Organization Vote
Atlanta Java User Group (AJUG) +1
IBM +1
Red Hat +1
Tomitribe +1
Oracle +1
iJUG -1
Fujitsu +1
Microsoft +1
Primeton +1
Payara +1
Committer Representative (Emerson Castañeda) +1
Total 10

Release Review

The Specification Committee Ballot concluded successfully on Wed, 21 Aug 2024 with the following results.

Corporate/Community Member Vote
Atlanta JUG +1
Community (Emerson Castaneda) +1
Fujitsu +1
IBM +1
iJUG
Microsoft +1
Oracle +1
Payara +1
Primeton +1
Red Hat +1
Tomitribe +1
Binding total 10
Non Binding 
Garden State JUG
Non-binding Votes 0
Binding + non-binding total 10

Help optimize Enterprise Java for a microservices architecture.

Join the MicroProfile Google Group, peruse recent topics or create your own, and join in on the conversation. It's that easy!

JOIN THE DISCUSSION