diff --git a/microprofile/WFLY-19592_MicroProfile_Fault_Tolerance_4_1.adoc b/microprofile/WFLY-19592_MicroProfile_Fault_Tolerance_4_1.adoc new file mode 100644 index 00000000..14b79d2f --- /dev/null +++ b/microprofile/WFLY-19592_MicroProfile_Fault_Tolerance_4_1.adoc @@ -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. +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. +----