Spring WebFlux APIs are Reactive APIs and accept Publisher as plain input. WebFlux then adapts it to a type supported by a Reactive library such as Reactor Core or RxJava. It then processes the input and returns the output based on the supported Reactive library's type. This allows WebFlux APIs to be interoperable with other Reactive libraries.
By default, Spring WebFlux uses Reactor (https://projectreactor.io) as a core dependency. Project Reactor provides Reactive Streams library. As stated in the previous paragraph, WebFlux accepts the input as Publisher, then adapts it to a Reactor type, and then returns it as Mono or Flux output.
https://medium.com/creditas-tech/reactive-apis-a-non-imperative-communication-84689cc3c9e