Chapter 16. Messaging with the queue
This chapter covers
- Loosely coupling your system
- Distributing work to a group of service providers
- Learning how to use messaging
Queues are the third part of the Azure storage system (after BLOBs and tables). The concept of queues has been around a long time, and it’s likely that you’ve worked with some technology related to queues already.
A common architectural goal during design is to produce a system that’s tightly integrated, but also loosely coupled. Any sizable system usually has several components, and whether these components are running in the same memory space, or on different boxes, they need to work closely together. This is what is meant by “tightly integrated.” These different components should work as a team to provide the value of the system in an easy and cohesive manner.
If your only goal is tight integration, you’ll often end up with a system where the components are tightly coupled as well. Tight coupling leads to a system that’s brittle and that responds poorly to changes. This makes it difficult to manage the system and to extend it to meet future needs. In a brittle system, a change in one component can ripple through the whole system, requiring changes in many other components. Such a system is difficult to understand, maintain, and troubleshoot.