Guides

Learn Mutiny chunk by chunk at your pace.

Getting Started

Getting Started with Mutiny

To start using Mutiny, you just need to drop a JAR in your classpath

First lines of code

Your first lines of code using Mutiny.

Creating Unis

Learn how to create Uni instances.

Creating Multis

Learn how to create Multi instances.

Observing events

Learn how to observes the events emitted by Uni and Multi instances.

Transforming items

Learn how to (synchronously) transform received item

Transforming items to Uni/Multi

Learn how to transform received item into asynchronous streams.

Handling failures

Learn how you can recover from failures.

Retrying on failures

Learn how you to retry on failures.


Operators

Joining several unis

Learn how to join several unis, collect results or pick the first one.

beginner

Merging and Concatenating Streams

Learn how to merge or concatenate streams

beginner

Collecting items from Multi

Learn how to collect items from a multi.

beginner

Combining items from streams

Learn how to combine items from different streams.

beginner

Filtering items from multi

Learn how to filter and select items from a multi.

beginner

Take or Skip the first or last items

Learn how to select or skip only the first or last items from a multi.

beginner

Eliminate duplicates and repetitions

Learn how to drop duplicated and repeated items from a multi.

beginner

Shortcut methods

Learn the different shortcuts reducing verbosity.

intermediate

How to handle null?

Learn how to execute specific actions on null items

beginner

How to handle timeout?

Learn how to timeouts and deadlines.

beginner

How to delay events?

Learn how to artifically delays event propagation and throttle emissions.

intermediate

How to use polling?

Learn how to consume items from pollable sources.

intermediate

How to use paginated API?

Learn how to consume APIs using pagination.

intermediate

How to change the emission thread?

Learn how to control threads used to emit events.

intermediate

What's the difference between emitOn and runSubscriptionOn?

Learn how to control threads subscription threads.

advanced

Logging operators

Learn how to log operator events.

beginner


Integration

From reactive to imperative

Learn how to block until you get items.

advanced

Imperative to Reactive

Learn how to integrate blocking code.

advanced

How to deal with Completion Stages?

Learn how to interact with CompletionStages and CompletableFutures.

intermediate

Using other reactive programming libraries

Learn how to integrate Mutiny with RX Java or Reactor.

intermediate

How to create a Multi from a non reactive source?

Learn how to use the Unicast processor.

advanced

How to interact with Kotlin coroutines?

Learn how Mutiny and Kotlin coroutines come together

intermediate


Misc

How can I write unit / integration tests?

Learn how to test your Mutiny applications.

intermediate

Dealing with checked exceptions

Learn how to handle checked exceptions.

intermediate

How to create a hot stream?

Learn how to broadcast items.

intermediate

Using map, flatMap and concatMap

Learn how to use the traditional Reactive eXtensions methods.

advanced

Can I have custom operators?

Learn how to implement your own operator.

advanced


Infrastructure

How to integrate Mutiny with my framework?

Learn about the default executors used by Mutiny and how to configure them.

advanced

Handling dropped exceptions?

Learn how you can deal with dropped exceptions.

advanced