The composite service will make reactive, that is, non-blocking, calls in parallel to the three core services. When the composite service has received responses from all of the core services, it will create a composite response and send it back to the caller. This is illustrated in the following diagram:
In this section, we will cover the following:
An introduction to Project Reactor
Non-blocking persistence using Spring Data for MongoDB
Non-blocking REST APIs in the core services, including how to handle blocking code for the JPA-based persistence layer
Non-blocking REST APIs in the composite service