What design patterns or techniques have you used that are specifically geared toward scalability?
Patterns such as the Flyweight pattern seem to me to be a specialized version of the Factory Pattern, to promote high scalability or when working within memory or storage constraints.
What others have you used? (Denormalization of Databases, etc.) Do you find that the rules change when high availability or scalability is your primary goal?
Possible situations are:
- Mobile devices with more limited memory, processing power, and connectivity than a Desktop or Laptop
- High # of users on limited hardware (caching strategies, etc)
- Optimization of database schema for efficiency in lieu of a normalized design (e.g. SharePoint column wrapping for storage)