Scalability describes a system’s ability to improve performance by adding processing resources. As problems grow, adding resources can help where simply shortening the time for one unit of work is not enough. section 1.3
There are two main ways to add capacity:
- Vertical scaling, or scaling up, upgrades existing resources—for example, by adding memory or using a more powerful processor. It can hit a performance ceiling, and higher-end hardware can cost more for diminishing gains. section 1.3
- Horizontal scaling, or scaling out, distributes work across existing and new processing resources. Adding resources can increase performance, but this approach requires concurrency and may involve multiple interconnected machines, or computing clusters. section 1.3 section 1.6
Demand for real-time systems, high data volumes, reliability through redundancy, and better resource sharing in cloud and SaaS environments has driven a shift toward horizontal scaling. Concurrency also helps use resources efficiently and connects scalability with the broader challenge of solving complex problems. section 1.3 section 1.6


























