In this chapter, we will learn how to develop reactive microservices, that is, how to develop non-blocking synchronous REST APIs and asynchronous event-driven services using Spring. We will also learn about how to choose between these two alternatives. Finally, we will see how to create and run manual and automated tests of a reactive microservice landscape.
As already described in the Reactive microservices section in Chapter 1, Introduction to Microservices, the foundations for reactive systems is that they are message-driven—they use asynchronous communication. This enables them to be elastic, that is, scalable and resilient, meaning that they will be tolerant to failures. Elasticity and resilience together will enable a reactive system to be responsive; they will be able to respond...