Below are the advantages we will get with reactive APIs.
Asynchronous and Non-Blocking → Reactive programming gives the flexibility to write asynchronous and Non-Blocking applications.
Event/Message Driven→ The system will generate events or messages for any activity. For example, the data coming from the database is treated as a stream of events.
Support for backpressure → Gracefully we can handle the pressure from one system to on to the other system by applying back pressure to avoid denial of service.
Predictable application response time → As the threads are asynchronous and non-blocking, the application response time is predictable under the load.
Better utilization of system resources → As the threads are asynchronous and non-blocking, the threads will not be hogged for the I/O. With fewer threads, we could able to support more user requests.
Scale based on the load
Move away from thread per request → With the reactive APIs, we are moving away from thread per request model as the threads are asynchronous and non-blocking. Once the request is made, it creates an event with the server and the request thread will be released to handle other requests.
https://dzone.com/articles/build-reactive-rest-apis-with-spring-webflux