Skip navigation links

MicroProfile Reactive Messaging API v2.0

@Version(value="1.1")

Package org.eclipse.microprofile.reactive.messaging

The MicroProfile Reactive Messaging API.

See: Description

Package org.eclipse.microprofile.reactive.messaging Description

The MicroProfile Reactive Messaging API.

This API provides a mechanism for declaring managed streams. CDI managed beans may declare methods annotated with Incoming and/or Outgoing to declare a message subscriber, publisher or processor.

The container is responsible for running, maintaining liveness, and stopping the message streams on context shutdown. Containers should implement restarting in case a stream fails, with an appropriate backoff strategy in the event of repeat failures.

The application should use Reactive Streams to provide the message stream handlers. Generally, use of org.eclipse.microprofile.reactive.streams builders should be used in preference to either Reactive Streams interfaces directly, or container specific implementations of streams.

Here is an example use of this API:

   @ApplicationScoped
   public class EmailPublisher {
     @Incoming("notifications")
     @Outgoing("emails")
     public ProcessorBuilder<Message<Notification>, Message<Email>> publishEmails() {
       return ReactiveStreams.<Message<Notification>>builder()
         .filter(msg -> msg.getPayload().isEmailable())
         .map(msg -> {
           Email email = convertNotificationToEmail(msg.getPayload());
           return Message.of(email, msg::ack);
         });
     }

     private Email convertNotificationToEmail(Notification notification) {
       ...
     }
   }
 
Skip navigation links

MicroProfile Reactive Messaging API v2.0

Copyright © 2018 – 2021 Eclipse Foundation. All rights reserved.
Use is subject to license terms.