The success of any application or system depends on the architecture pattern
you use. By describing the overall characteristics of the architecture, these patterns
not only guide designers and developers on how to design components, but also determine
the ways in which those components should interact. This O’Reilly report takes a deep
dive into many common software architecture patterns. Each pattern includes a full
explanation of how it works, explains the pattern’s benefits and considerations, and describes the circumstances and conditions it was designed to address. The report also
includes an analysis and scorecard for each pattern based on several architecture and software development quality attributes.