Skip to main content

SmallRye Mutiny

https://smallrye.io/
https://smallrye.io/smallrye-mutiny/latest/

Reactive Converters Built-In

Mutiny is based on the Reactive Streams protocol and Java Flow, and so it can be integrated with any other reactive programming library.

In addition, it proposes converters to interact with other popular libraries.

Event-Driven

Mutiny places events at the core of its design.
With Mutiny, you observe events, react to them, and create elegant and readable processing pipelines.

Non-blocking I/O

Mutiny is the perfect companion to tame the asynchronous nature of applications with non-blocking I/O.
Compose operations in a declarative fashion, transform data, enforce progress, recover from failures and more.

Made for an asynchronous world

Mutiny can be used in any asynchronous application such as event-driven microservices, message-based applications, network utilities, data stream processing, and of course… reactive applications!

Quarkus and Vert.x

Mutiny is integrated in Quarkus where every reactive API uses Mutiny, and Eclipse Vert.x clients are made available using Mutiny bindings.
Mutiny is however an independent library that can ultimately be used in any Java application.

Using Mutiny with Quarkus

Most of the Quarkus extensions with reactive capabilities already depend on Mutiny. You can also add the quarkus-mutiny dependency explicitly from the command-line:

mvn quarkus:add-extension -Dextensions=mutiny

or by editing the pom.xml file and adding:

<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-mutiny</artifactId>
</dependency>

Using Mutiny with Vert.x

Most of the Eclipse Vert.x stack modules are available through the SmallRye Mutiny Vert.x Bindings project. Bindings for Vert.x modules are named by prepending smallrye-mutiny-. As an example here’s how to add a dependency to the vertx-core Mutiny bindings:

<dependency>
<groupId>io.smallrye.reactive</groupId>
<artifactId>smallrye-mutiny-vertx-core</artifactId>
<version>3.13.0</version>
</dependency>