Scalability refers to how well a system can grow. That is increasing the ability to do whatever the system is supposed to do. For example, a Kubernetes cluster scales by increasing or reducing the number of containerized apps, but that scalability depends on several factors. How many nodes does it have, how many containers can each node handle, and how many records and operations can the control plane support?

A scalable system makes it easy to add more capacity. We differentiate between two scaling approaches. On the one hand, there is horizontal scaling which adds more nodes to handle increased load. In contrast, in vertical scaling individual nodes are made more powerful to perform more transactions (e.g. by adding more memory or CPU to an individual machine). A scalable system is able to change easily and meet user needs.

Last modified September 29, 2021: fixed internal links (ff51ee5)