Write 2-4 bullets or sentences that summarize the architecture. Focus on the main concept, and anything that has changed or that developers are likely to misunderstand without documentation.
Consider how the sample goals relate to your project. Add, edit, or delete goals to fit your project. Rank them from most important to least important. Explicitly stating your goals will help you make and evaluate your decisions later.
Outline each possible type of deployment configuration. Some products will have only one possible deployment, while others will have a few common deployments for large, medium, and small customers, or for internal (development, testing, and staging) or external (production) usage.
List resources that are shared between machines. Shared resources are potential system bottlenecks that limit scalability, and they are also points where one component of the system can potentially interfere with another component (e.g., one component completely fills a shared disk and causes other components to fail).
Use this checklist to help evaluate your architectural design decisions with respect to your stated goals. If any question cannot be answered positively, go back and revise the design.