Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WFLY-19592 MicroProfile Fault Tolerance 4.1 #649

Merged
merged 4 commits into from
Dec 10, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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: rhusar@redhat.com
: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.
rhusar marked this conversation as resolved.
Show resolved Hide resolved
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
rhusar marked this conversation as resolved.
Show resolved Hide resolved

* 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
rhusar marked this conversation as resolved.
Show resolved Hide resolved

* 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.
rhusar marked this conversation as resolved.
Show resolved Hide resolved

=== 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).
rhusar marked this conversation as resolved.
Show resolved Hide resolved

=== 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.
rhusar marked this conversation as resolved.
Show resolved Hide resolved

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

rhusar marked this conversation as resolved.
Show resolved Hide resolved
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:

rhusar marked this conversation as resolved.
Show resolved Hide resolved
* 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.
rhusar marked this conversation as resolved.
Show resolved Hide resolved

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