When planing the architecture of an application, the architect has a powerful set of tools available: Design Patterns
Design Patterns are reusable solutions for frequent problems, upon different contexts. The more you know about them, the more self-confidence you gain while doing your architecture. And possibly (I'm not saying probably, yet) the more robust your results
What is the risk when an aspiring architect recently knew about design patterns? Overarchitecture of his designs, felling himself obliged to apply the new acquired knowledge
A common mistake around this is considering that a solution which has design patterns applied is better than other which has less or doesn't have at all. Quantity doesn't imply quality. It's all about the opportunity to apply them when it's useful and relevant
So, taking into account this reminder, where to start?
There is a book that was a hit and established a "before and after" in software engineering: "Design Patterns: Elements of Reusable...". Its authors are also known as the "Gang of Four", or simply the GoF
Starting from this book wasn't bad, but in some cases drove to inadequate application of the concepts, because patterns there are very very fundational
I want to suggest another starting point, better focused in application contexts (web, smart client, SOA) and concerns (security, data access, etc), because applying GoF patterns to real world enterprise class applications is not an intuitive task (it requires patience to become experienced)
The place I say is "Patterns and Practices Patterns repository"