The IaaS and PaaS cloud models allow architects to decouple components of an application or enterprise system into the lowest functional components and design for failure how these pieces can be utilized as “independent black boxes” to form an application. This allows for provisioning elasticity and resiliency of individual components and their states in the inevitable event of hardware or software failure.
One of the least understood impacts of this approach is that the message queues used by components can become the most important elements in assuring availability, scalability and ultimate reliability. In essence the messaging infrastructure components become the most critical parts of an applications infrastructure designed to exploit elasticity. If you envision these Enterprise Apps as complex organisms, then the message queues and their reliability become mission critical organs of the living, agile enterprise architecture. Components such as controller apps, databases and such should be isolated allowing buffering of request along with replies making the network of components more durable and state independent facilitating failover and scalability.