diff --git a/microprofile/WFLY-15016-mp-reactive-messaging-amq-streams-support.adoc b/microprofile/WFLY-15016-mp-reactive-messaging-amq-streams-support.adoc new file mode 100644 index 000000000..0d2158263 --- /dev/null +++ b/microprofile/WFLY-15016-mp-reactive-messaging-amq-streams-support.adoc @@ -0,0 +1,93 @@ += Full Support for MicroProfile Reactive Messaging for AMQ Streams (Kafka) integration +:author: Kabir Khan +:email: kkhan@redhat.com +:toc: left +:icons: font +:idprefix: +:idseparator: - + +== Overview +AMQ Streams is Red Hat's offering of Kafka on OpenShift. Users use the AMQ Streams operator to create a Kafka instance in their OpenShift setup. + +Most of the work has been done in the related issues below, so this RFE is more about testing and documenting. + +== Issue Metadata + +=== Issue + +* https://issues.redhat.com/browse/WFLY-15016[WFLY-15016] + +=== Related Issues + +* https://issues.redhat.com/browse/WFLY-14798[WFLY-14798 - Upgrade to MicroProfile Reactive Messaging 2.0] - This version introduces the new `@Channel` annotation, which makes it easier for users to get data into/from the Reactive Messaging Streams +* https://issues.redhat.com/browse/WFLY-14932[WFLY-14932 - Configuration of Reactive Messaging Kafka messages] - The API introduced here allows you to get information about how Kafka handled a message, and to influence how messages are sent to Kafka. Most importantly it enables the use of a key for the messages sent to Kafka, which in turn inside Kafka are stored as records. Being able to query them, and not simply use Kafka as a messaging system is important. +* https://issues.redhat.com/browse/WFLY-14987[WFLY-14987 - Ability to use an Elytron SSL Context in the Kafka connector] - The Kafka instance set up by AMQ Streams might be secured using SSL with unsigned certificates, so we need a way to specify the truststore. +* https://issues.redhat.com/browse/WFLY-13640[WFLY-13640 - Provide Support for MicroProfile Reactive Messaging 1.0 for Kafka] - This was the original issue bringing Reactive Messaging 1.0 into WildFly. Some testing was done against AMQ Streams on OpenShift. + +=== Dev Contacts + +* mailto:{email}[{author}] + +=== QE Contacts +* mailto:jstourac@redhat.com[Jan Stourac] +* mailto:mnovak@redhat.com[Miroslav Novak] +* mailto:fburzigo@redhat.com[Fabio Burzigotti] + + +=== Testing By +// Put an x in the relevant field to indicate if testing will be done by Engineering or QE. +// Discuss with QE during the Kickoff state to decide this +* [ ] Engineering + +* [x] QE + +=== Affected Projects or Components +* WildFly +* SmallRye Reactive Messaging +* Apache Kafka Client + +=== Other Interested Projects + +=== Relevant Installation Types +// Remove the x next to the relevant field if the feature in question is not relevant +// to that kind of WildFly installation +* [x] Traditional standalone server (unzipped or provisioned by Galleon) + +* [ ] Managed domain + +* [x] OpenShift s2i + +* [x] Bootable jar + +== Requirements + +=== Hard Requirements +* It should be possible to connect to an AMQ Streams Kafka broker from an application. +* The following security protocols are supported +** `PLAINTEXT` - Communication is not encrypted and no autentication is needed +* `SASL_PLAINTEXT` - No encryption but with SASL-based authentication +* `TLS` - Communication is encrypted via either a CA or unsigned certificate. AMQ Streams supports the use of client certificates for optional authentication with this mechanism +* `SASL_SSL` - Encrypted communication with SASL-based authentication + +=== Nice-to-Have Requirements + +=== Non-Requirements +* If AMQ Streams supports https://github.com/strimzi/strimzi-kafka-oauth[Strimzi OAuth], this RFE does not introduce support for that: +** we support the SSL/SASL security mechanisms in the Kafka documentation + +== Test Plan +For WildFly we test what we can as indicated in the linked <>. + +== Community Documentation +This is covered by the linked <>. + +== Release Note Content +//// +Draft verbiage for up to a few sentences on the feature for inclusion in the +Release Note blog article for the release that first includes this feature. +Example article: http://wildfly.org/news/2018/08/30/WildFly14-Final-Released/. +This content will be edited, so there is no need to make it perfect or discuss +what release it appears in. "See Overview" is acceptable if the overview is +suitable. For simple features best covered as an item in a bullet-point list +of features containing a few words on each, use "Bullet point: " +////