Decoupling lets components communicate through a message queue instead of depending on direct communication with one another. A publisher can send messages before a subscriber starts, and a subscriber can keep listening when no publisher is active. Each component works with the queue without knowing about the others, supporting performance and scalability. section 21.1
Figure 21.1 Message queues decouple components so that they don’t communicate with each other directly.
The diagram shows how a message queue separates components that would otherwise communicate directly. section 21.1



