title: Design Patterns (or techniques) for Scalability
body: <p>What <strong>design patterns</strong> or <strong>techniques</strong> have you used that are specifically geared toward <strong>scalability</strong>?  </p>
  
  <p>Patterns such as the <a href="http://www.dofactory.com/Patterns/PatternFlyweight.aspx" rel="noreferrer"><strong>Flyweight</strong></a> pattern seem to me to be a specialized version of the <a href="http://msdn.microsoft.com/en-us/library/ms954600.aspx" rel="noreferrer"><strong>Factory Pattern</strong></a>, to promote high scalability or when working within memory or storage constraints.</p>
  
  <p>What others have you used?  (<a href="http://database-programmer.blogspot.com/2008/04/denormalization-patterns.html" rel="noreferrer"><strong>Denormalization of Databases</strong></a>, etc.) Do you find that the rules change when high availability or scalability is your primary goal? </p>
  
  <p>Possible situations are:</p>
  
  <ul>
  <li>Mobile devices with more limited memory, processing power, and connectivity than a Desktop or Laptop</li>
  <li>High # of users on limited hardware (caching strategies, etc)</li>
  <li>Optimization of database schema for efficiency in lieu of a normalized design (e.g. SharePoint column wrapping for storage)</li>
  </ul>