Messaging patterns used in distributed systems
As we saw in the previous chapter, distributed system designers use different networking topologies to interconnect systems, and most of those topologies are still used heavily in the technology industry. Network topology defines the layout of communication within the platform and the actual communication pattern; the protocols are not well defined there. In this chapter, we will discuss the communication that occurs within a distributed system.
Distributed system designers have produced different approaches to communicating between systems. These patterns include the following:
- Remote procedure calls (RPC) versus shared resources
- Synchronous versus asynchronous (client-server versus pub-sub)
- Orchestration versus choreography
Let's look at the preceding approaches in more detail so that we can use them when designing communication patterns for a microservice architecture, which is another distributed system...