Chapter 15. Message flow patterns

 

In this chapter, we will explore some of the most basic patterns of communication that occur between Reactive components: specifically, we will talk about how messages flow between them. We discussed the theoretical background in chapter 10, noting that the design of communication paths within a system is crucial to its success—the same holds for real-world organizations as well as Reactive applications.

Most of the patterns we will encounter are extremely generic, starting with the Request–Response pattern. They can be applied in a variety of cases and come in many forms. The examples are therefore less specific than in other chapters, but we will use the front-end façade of a larger service as a problem setting. You can think of this as a more detailed look at the client interface component of the batch job service, our running example. The particular patterns we will cover are as follows:

  • The Request–Response pattern
  • The Self-Contained Message pattern
  • The Ask pattern
  • The Forward Flow pattern
  • The Aggregator pattern
  • The Saga pattern
  • The Business Handshake pattern

15.1. The Request–Response pattern

Include a return address in the message to receive a response.

15.2. The Self-Contained Message pattern

15.3. The Ask pattern

15.4. The Forward Flow pattern

15.5. The Aggregator pattern

15.6. The Saga pattern

15.7. The Business Handshake pattern (a.k.a. Reliable Delivery pattern)

15.8. Summary