Skip to content

Commit

Permalink
Merge pull request #649 from rhusar/WFLY-19592
Browse files Browse the repository at this point in the history
WFLY-19592 MicroProfile Fault Tolerance 4.1
  • Loading branch information
darranl authored Dec 10, 2024
2 parents 0baf062 + 26bb44b commit 2a4de23
Showing 1 changed file with 147 additions and 0 deletions.
147 changes: 147 additions & 0 deletions microprofile/WFLY-19592_MicroProfile_Fault_Tolerance_4_1.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
---
categories:
- microprofile
stability-level: default
issue: https://github.com/wildfly/wildfly-proposals/issues/626
feature-team:
developer: rhusar
sme:
- rhusar
outside-perspective:
- fabiobrz
promotes:
promoted-by:
---
= WFLY-19592 [MP Platform 7] MicroProfile Fault Tolerance 4.1
:author: Radoslav Husar
:email: [email protected]
:toc: left
:icons: font
:idprefix:
:idseparator: -

== 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

* https://issues.redhat.com/browse/WFLY-19592[WFLY-19592 MicroProfile Fault Tolerance 4.1]

=== Related Issues

* https://issues.redhat.com/browse/WFLY-19588[WFLY-19588 Implement MicroProfile Platform 7] – MP Platform parent issue
* https://issues.redhat.com/browse/WFLY-19590[WFLY-19590 MicroProfile Telemetry 2.0] – dependency of this issue for full Telemetry metrics integration

=== Affected Projects or Components

* https://github.com/wildfly/wildfly[WildFly]

=== Other Interested Projects

* https://github.com/eclipse/microprofile-fault-tolerance[Eclipse MicroProfile Fault Tolerance] – MP Specification and TCK sources
* https://github.com/smallrye/smallrye-fault-tolerance[SmallRye Fault Tolerance] – implementation

=== 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 https://issues.redhat.com/browse/WFLY-19590[subsystem and modules] is required.
Implementation will be done in the created `mp-7-wip` https://github.com/wildfly/wildfly/tree/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]]
== 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 https://github.com/smallrye/smallrye-fault-tolerance/tree/main/testsuite[implementation] testsuite is executed, also covering MicroProfile Fault tolerance -> MicroProfile Telemetry integration.
* The corresponding MicroProfile tests from https://github.com/jboss-eap-qe/eap-microprofile-test-suite[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

[quote]
----
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.
----

0 comments on commit 2a4de23

Please sign in to comment.