architect-handbook

Software Architect Handbook

View on GitHub

Horizontal Scaling (scale out/in)

Horizontal scaling means adding more nodes to (or removing nodes from) a system, such as adding a new computer to a dstributed software application.

High-performance computing applications, such as seismic analysis and biotechnology, scale workloads horizontally to support tasks that once would have required expensive supercomputers.

Other workloads, such as large social networks, exceed the capacity of the largest supercomputer and can only be handled by horizontally scalable systems.

Exploiting this scalability requires software for efficient resource management and maintenance.

Horizontal scaling enables Failover and Redundacy mechanisms, otherwise you’d have a single server and a SPOF.