Modernise Reactive Messaging QuickStart for MicroProfile Reactive Messaging 2.0

In  microprofile quickstarts

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.

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

  • 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 a Publisher (or PublisherBuilder) as an alternative to @Incoming

  • 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.