Distributed Application Architecture Patterns

4 Communication Patterns

This chapter presents the fundamental building blocks regarding communication in distributed systems.

  1. The Gateway Routing pattern in § 4.1 abstracts the location of the underlying services from any clients, presenting the system as if it was a single service

  2. The Publisher–Subscriber pattern introduces a common way to decouple and scale communication between services in § 4.2 and message brokers, a common way to implement this communication style, in § 4.2.7

  3. The Asynchronous Request–Reply pattern then fills in a gap introduced by employing messaging or asynchronicity in general, that is, how to handle responses, in § 4.3

As distributed systems necessitate communication, many other patterns could be included in this chapter but are presented elsewhere due to their focus on other aspects of the system, such as:

Overall, this is just a subset of the topic and was covered in depth by Hohpe et al. [4] or Richardson [20, p. 85].