Whilst always welcoming the system delivered with the required functionality, if it has been built with little or no consideration for the non-functional characteristics of the system, the welcome would be short-lived. Without an acceptable level of performance, reliability, stability and security users would soon - and rightly - distrust it. Just as importantly, the business would be stuck with a system hard to manage and maintain without serious interruption in service. Based on real world problems and systems and illustrated with 'war stories', this is a practical nuts-and-bolts guide to architectural solutions. It will describe step-by-step how to design robustness and flexibility into a system. A running case study will illustrate the evolution and iteration of the system as it grows in functionality and capability. Patterns addressing these constraints will show the impact in the context of a 'real system'. At the end of each chapter a new evolutionary variant of the overall system illustrates its improved overall capabilities