Micronaut Reactor

Integration between Micronaut and Reactor

Version: 3.4.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


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:


To use the HTTP client add the following 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.


6 Repository

You can find the source code of this project in this repository: