Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Dark theme

Unraveling Project Reactor

In this course, you’ll learn how to use Project Reactor to program in a non-blocking, reactive way.

View it on GitHub


Introduction

Welcome to this comprehensive guide on reactive programming with Project Reactor.

If you’ve ever find yourself struggling with the complexities of managing threads, synchronization, callbacks, and race conditions in traditional programming, reactive programming may offer you a refreshing and efficient alternative. This programming paradigm excels in handling asynchronous data streams, enabling you to create more resilient and responsive applications.

Reactive programming is not that hard to learn. It’s just a different way of doing things. This book has been designed for readers who are new to reactive programming, as well as those seeking to expand their existing skill set. It will provide you with a clear and structured path, leading you through the essential concepts and techniques necessary to unravel reactive programming using Project Reactor. By the end of this book, you will gained a deep understanding of reactive programming and how to use most of the operators that Project Reactor provides.

It’s completely free to read online, but if you want to support my work, you can buy the book on:

You can also find this book on GitHub, where you can download all the examples and exercises.

I’ll update the book’s content as needed, likely every few months, to correct errors and maintain its relevance. If you find errors or would like to suggest modifications or additions to improve the book, please feel free to submit issues and pull requests at the specified GitHub repository.

Thanks!

Prerequisites

Changelog

2024-03-10

  • Fix typos in chapter 05. Thanks to pladenn.

2024-01-31

  • Fix typo at the beginning of chapter 25. Thanks to vicziani.

2023-10-30

  • In the section The Problem a Context Solves, replaced Publisher with Subscriber. Thanks to LeQuiLong7.

2023-10-29

  • In the section Aggregating a Flux, fixed example for collectMap. Thanks to LeQuiLong7.

2023-05-11

  • Typos and minor errors fixed

2023-04-26

  • Course/book complete

2022-06-07

  • Added content of module 02 - Working with Mono and Flux
  • Updates to content of module 01

2022-05-24

  • Added content of module 01 - Introduction to Reactive Programming

The content of this website is distributed with a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Public license.

Project Reactor groups multiple open source projects licensed under the Apache Software License 2 and is sponsored by VMware.

Spring®, Spring Framework, Spring Boot, are trademarks of Pivotal Software, Inc. in the U.S. and other countries.

Oracle and Java are registered trademarks of Oracle and/or its affiliates.

Other names may be trademarks of their respective owners.