Project Reactor is based on the Reactive Streams specification (http://www.reactive-streams.org), a standard for building reactive applications. Spring Reactor is fundamental and it is what Spring WebFlux, Spring WebClient, and Spring Data rely on to provide their reactive and non-blocking features.
The programming model is based on processing streams of data, and the core data types in Project Reactor are Flux and Mono. A Flux object is used to process a stream of 0...n elements and a Mono object is used to process 0...1 elements. We will see numerous examples of its usage in this chapter