Modernise Reactive Messaging QuickStart for MicroProfile Reactive Messaging 2.0
Overview
The MicroProfile Reactive Messaging 2.0 upgrade brings in new features for users. In addition, as part of this work, we are now able to get more information about Kafka metadata for received messages, and to set that when sending messages to influence how they are sent.
The existing quickstart will be enhanced to show some of these new features.
Issue Metadata
Issue
Related Issues
-
WFLY-14932 - Configuration of Reactive Messaging Kafka messages
-
TODO - Integrate MicroProfile Reactive Messaging with RHOSAK
-
WFLY-14391 - Quickstart for Reactive Messaging 1.0 with Kafka - This was the original Quickstart which this one will expand upon
Dev Contacts
QE Contacts
Testing By
[ ] Engineering
[x] QE
Affected Projects or Components
-
Quickstarts
Other Interested Projects
Requirements
Hard Requirements
-
start a Kafka instance
-
On bare metal this will be done via Docker (more specifically
docker-compose
since we need to start a Zookeeper instance in addition to the Kafka instance. This already exists)
-
-
Kafka connection configuration via MP Config (already exists)
-
On OpenShift we will provide examples for
-
AMQ Streams - this already exists
-
RHOSAK - We should provide alternate instructions for how to set up the container to use RHOSAK as outlined in WFLY-15006
-
Rather than having a separate bare-metal configuration to cover WFLY-14391 - using an Elytron SSL Context for the Kafka connector, we should mention the extra config property that will allow the users to connect to a secured Kafka instance which does not have a CA signed certificate
-
-
-
-
Using
@Incoming
and@Outgoing
annotations on methods to map the streams (already exists).-
Showcase some alternative method signatures for these methods (already exists)
-
-
Using the
@Channel
annotation on aPublisher
(orPublisherBuilder
) as an alternative to@Incoming
-
Mention that we do not recommend returning such a
Publisher
via JAX-RS due to the limitations pointed out in the Non-Requirements section of https://github.com/wildfly/wildfly-proposals/pull/395/files (for WFLY-14798) -
Using the
@Channel
annotation on aEmitter
as an alternative to@Outgoing
-
-
Use Reactive Streams Operators to modify streams (already exists)
-
Use the Kafka API to
-
Set the Kafka key for a
Message
-
Get Kafka key, topic and partition for a
Message
.
-
Non-Requirements
Test Plan
The QuickStart will have Arquillian tests to test the bare metal case.
Community Documentation
Covered by the quickstart README file.