Understanding the asynchronous communication service
An essential component of a microservice architecture is the ability of the components to communicate asynchronously. Some of the components are going to produce data that then needs to be consumed by other components.
Having a centralized area where the communication can take place might be the single most important decision to keep the architecture simple. If we allow services to communicate among each other, the combinatorial explosion of those connections and the complexity that will result from it will soon bury us and doom the project. The following figure illustrates how many more connections are needed if we don't have a centralized communication mechanism:
On the left of the figure where the point-to-point architecture is illustrated, there are many more connections that need to be made if an event bus is not...