Introduction

In this workshop you'll learn how to implement reactive messaging functionality with Java, Quarkus, Kafka, Vert.x and MicroProfile. An end-to-end sample application will be deployed to Red Hat OpenShift.

The code is available as open source as part of the Cloud Native Starter project.

One benefit of reactive models is the ability to update web applications by sending messages, rather than pulling for updates. This is more efficient and improves the user experience.

The workshop uses a sample application to demonstrate reactive functionality. The simple application displays links to articles and author information.

Articles can be created via REST API. The web application receives a notification and adds the new article to the page. The animation shows how curl requests are executed at the bottom which trigger updates to the web application at the top.

Architecture

The next diagram explains the flow between the different components and microservices.

  1. API client 'Submissions' triggers the REST API of the 'Articles' service to create new articles.

  2. The 'Articles' service sends a message to the 'Web-API' service via 'Kafka'.

  3. The 'Web-API' provides a streaming endpoint

  4. The web application 'Web-App' consumes the streaming endpoint

Note that in this workshop you will deploy the full application as described in the previous diagram. But to simplify the workshop you'll re-implement a simpler version of the 'Web-API' service which only invokes the 'Articles' service.

Estimated time and level

Objectives

After you complete this workshop, you'll understand the following reactive functionality:

  • Sending and receiving Kafka messages via MicroProfile

  • Sending events from microservices to web applications via Server Sent Events

  • Sending in-memory messages via MicroProfile and Vert.x Event Bus

The intention of this workshop is not to explain every aspect of reactive programming, but to explain core reactive principles and to deploy a complete reactive application which you can inspect after the workshop in more detail.

About this workshop

The introductory page of the workshop is broken down into the following sections:

Agenda

These are the labs of this workshop, go through all of them in sequence, start with pre work:

Compatibility

This workshop has been tested on the following platforms:

  • IBM Open Shift: version 4.3

  • IBM Cloud Shell: beta

Technology Used

Credits

What`s next?

The blogs as well as the presentation describe the functionality in more detail.

Last updated