-
Notifications
You must be signed in to change notification settings - Fork 80
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-15016] Reactive Messaging and AMQ Streams support #414
Closed
Closed
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
93 changes: 93 additions & 0 deletions
93
microprofile/WFLY-15016-mp-reactive-messaging-amq-streams-support.adoc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
= Full Support for MicroProfile Reactive Messaging for AMQ Streams (Kafka) integration | ||
:author: Kabir Khan | ||
:email: [email protected] | ||
: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:[email protected][Jan Stourac] | ||
* mailto:[email protected][Miroslav Novak] | ||
* mailto:[email protected][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 <<Related Issues>>. | ||
|
||
== Community Documentation | ||
This is covered by the linked <<Related Issues>>. | ||
|
||
== 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: <The few words>" | ||
//// |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This proposal is mostly about testing and documentation, so just asking: are there no community release notes that can be mentioned here? Maybe those of the related issues here too?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not really, connecting to AMQ Streams is essentially the same as we do to connect to Kafka. So there isn't anything special to work with AMQ Streams. Also the quickstart https://github.com/wildfly/quickstart/tree/main/microprofile-reactive-messaging-kafka covers how to set up AMQ Streams and connecting to it from WildFly