WFLY-19592 [MP Platform 7] MicroProfile Fault Tolerance 4.1

In  microprofile
Tracked by https://github.com/wildfly/wildfly-proposals/issues/626

Overview

The goal is to integrate MicroProfile (MP) Fault Tolerance (FT) 4.1 specification from the MP Platform 7.0 to WildFly at default stability level. The specification is implemented by SmallRye (SR) FT project. To certify functionality, the MP FT TCK is run as part of the WildFly testsuite.

User Stories

User wants to deploy an application using MicroProfile Fault Tolerance 4.1 from MicroProfile Platform 7.0. Users electing to employ MicroProfile Telemetry metrics will have MicroProfile Fault Tolerance metrics collected as well.

Issue Metadata

Affected Projects or Components

Other Interested Projects

Relevant Installation Types

  • Traditional standalone server (unzipped or provisioned by Galleon)

  • Managed domain

  • OpenShift Source-to-Image (S2I)

  • Bootable jar

Requirements

  • Upgrade MP FT specification modules to 4.1.

  • Upgrade SmallRye FT to latest relevant version that implements this spec.

  • Enable collecting metrics with MP Telemetry when the subsystem is available in the server configuration.

    • Simultaneous metrics collection: Historically, when WildFly removed MP Metrics support, we have provided an optional Micrometer integration in SR FT in order to keep providing metrics collection support. This integration is not defined by the FT spec. The MP FT 4.1 spec defined MP Telemetry metrics collection. The spec also defines concurrent collection when both MP Metrics and MP Telemetry is available. Analogously, when both subsystems are available, we will collect metrics also with Micrometer. While this is helpful for instance as an upgrade path, simultaneous metrics collection might not be desirable in all situations. For that purpose, we will be supporting MP Config properties to fine-tune metrics collectors in use. These properties smallrye.faulttolerance.micrometer.disabled and smallrye.faulttolerance.opentelemetry.disabled are now supported by upstream SR FT (since SR FT 6.6.3 and 6.7.0) and documented. Note, that this is in addition to an existing spec-defined MP Config property to disable metrics collection by MP FT altogether.

Changed requirements

  • N/A

Non-Requirements

  • N/A

Future Work

None.

Backwards Compatibility

The specification and the implementation do not introduce any incompatibilities from the previous version (MP FT 4.0).

Default Configuration

There are no changes to the existing configuration.

Importing Existing Configuration

The subsystem does not have any configuration, so existing subsystem configuration is not affected.

Deployments

The specification and the implementation do not introduce any incompatibilities from the previous version relevant to deployments.

Interoperability

  • N/A

Implementation Plan

For the integration with Telemetry metrics to function, the integration of its subsystem and modules is required. Implementation will be done in the created mp-7-wip branch in WildFly upstream repository.

Admin Clients

  • No effect on the existing clients, there are no model changes.

Security Considerations

  • No security implications of this integration.

Test Plan

Manual testing, apart from initial exploratory testing, will be performed to validate existing MP FT quickstart still functions and behaves as expected.

The following test suites will be used to validate this change:

  • MicroProfile Fault Tolerance TCK tests will be added and executed by CI as part of the WildFly testsuite (in testsuite/integration/microprofile-tck/fault-tolerance module)

  • WildFly-specific behavior and configuration is covered by existing tests in the WildFly testsuite (in testsuite/integration/microprofile module)

  • Upstream implementation testsuite is executed, also covering MicroProfile Fault tolerance → MicroProfile Telemetry integration.

  • The corresponding MicroProfile tests from EAP MicroProfile test suite, also covering MicroProfile Fault tolerance → MicroProfile Telemetry integration.

Community Documentation

References to the MP FT specifications in the existing documentation will be updated to reflect the updated versions.

Release Note Content

MicroProfile Fault Tolerance support in WildFly has been updated to version 4.1, implemented by SmallRye Fault Tolerance project version 6.5.
This new release brings bug fixes and updates to MP FT support, as well as adding support for Telemetry metrics.