An interesting article on scalability. Three points caught my attention:
a) Scalability is fundamental aspect of a design
b) Architect for near-zero-cohesion among your components
c) Dynamic scalability – defined as the ability to increase capacity by adding instances (which would be possible only by zero-cohesion)
I thought there is a little mixup in the article with multi-threading, semaphores et al. IMHO, scaling witin a machine (by leveraging more cores) is different from scaling in a cloud – with more processes. We need both, but depends on the nature of processing. For example Zillow (which runs solely on EC2) would be more suited for cloud scaling while computationally intensive applications could use some multi-core scaling plus cloud scaling.