implementation("io.micronaut.reactor:micronaut-reactor")
Micronaut Reactor
Integration between Micronaut and Reactor
Version: 3.3.0
1 Introduction
Micronaut Reactor adds support for Project Reactor to a Micronaut 2.x application. If you are using Micronaut 1.x you do not need this module.
-
Converters for Reactor types so that Reactor types can be used in controllers and clients
-
Instrumentation for Reactor types so that tracing works with Reactor types
-
A version of the Http client that supports Reactor
2 Release History
For this project, you can find a list of releases (with release notes) here:
3 Breaking Changes
3.0.0
Reactor Http Client
The Reactor Http client has changed to return Mono<HttpResponse<O>>
instead of Flux<HttpResponse<O>>
.
This is semantically more correct as there can only be a single response per request.
4 Quick Start
Add the following dependency to your Micronaut application:
<dependency>
<groupId>io.micronaut.reactor</groupId>
<artifactId>micronaut-reactor</artifactId>
</dependency>
To use the HTTP client add the following dependency:
implementation("io.micronaut.reactor:micronaut-reactor-http-client")
<dependency>
<groupId>io.micronaut.reactor</groupId>
<artifactId>micronaut-reactor-http-client</artifactId>
</dependency>
To use the Reactor variation of the Micronaut HTTP client inject the ReactorHttpClient interface (or one the other variants). For example:
import io.micronaut.reactor.http.client.*;
@Inject ReactorHttpClient httpClient; // regular client
@Inject ReactorSseClient sseClient; // server sent events
@Inject ReactorStreamingHttpClient streamingClient; // streaming
5 Reactor context propagation
When using Micronaut Reactor within a reactive chain, add the following dependency to handle the Reactor Context Propagation.
implementation("io.micrometer:context-propagation")
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>context-propagation</artifactId>
</dependency>
6 Repository
You can find the source code of this project in this repository: