This document discusses strategies for scaling mature systems. It identifies common scalability blockers like distributed transactions, resource contention, state/session management, and deployment processes. For distributed transactions, it explains the differences between ACID and BASE principles and strategies for implementing failure detection and handling. For resource contention, it recommends decoupling dependencies through asynchronous processes like caching. For state management, it suggests moving to stateless applications using an external session manager like Cassandra. And for deployment processes, it advises making applications stateless, configurable templates to allow elastic scaling through quick VM provisioning. The document is based on the experiences scaling an existing 10+ year old product at OpenJaw Technologies.