Architecting a solution in Drupal is not always straight forward. The main parameters that are key to a well Architected solution in Drupal are:
1. Understanding of Drupal
4. Working with Open source
Understanding Drupal's architecture and functionality is a key in architecting a solution in Drupal. I guess to leverage any technology a deep understanding of how the technology functions is must to use it optimally.
Main aspects of Maintainability
1. Use of well maintained modules and Plugins
2. Minimize configuration and move as much to code as possible, anything in code can be version controlled
3. Custom modules should be simplified elements, in sink with Drupals architecture
- Identifying the configuration parameters
- Use of Drupal Hooks and Drupal functionality
- Separating the Theme and the coding Layer
- Following Drupal's coding standards
The result of a well written and maintainable code should be that any Drupal programmer can pick up the module and start working with it.
Main aspects of Performance are
1. Database design:
2. Optimizing the Queries
3. Building of custom caching layer or efficient use of Drupal's Caching mechanism
4. Using appropriate technologies to make do for mysql's deficiencies - like using Apache Solr for Search
5. Server side Performance enhancements
Working with Open source
Need to be able to leverage the community to give and find solutions.
You have an opportunity to learn from the solutions used by similar interested communities and their real time experience, which could also play a role in the architecture of your solution.
A Related and interesting Blog on Evaluating Drupal Modules by my colleague: read on at http://rajeev-kottayil.blogspot.com/2010/10/evaluating-drupal-modules.html