Horizontal Scalability
Horizontal scalability refers to the ability of a system to scale by adding more nodes or machines to the existing architecture rather than increasing the resources (such as CPU, memory, or storage) of a single machine. In the context of distributed computing, this means adding more servers or instances to distribute the load and increase the overall capacity of the system. This approach is often used in cloud computing and database systems, such as MongoDB, to handle large-scale applications that require high availability and the ability to process large volumes of data. Horizontal scaling helps in improving the system's fault tolerance by allowing the system to remain operational even when some nodes fail, as the workload can be redistributed to other available nodes.
https://en.wikipedia.org/wiki/Scalability
In contrast to vertical scaling, where a single machine is upgraded to handle more load, horizontal scalability allows for more flexibility and cost-effective growth. Since new nodes are simply added to the network, organizations can scale as needed, often with less upfront investment. This also makes horizontal scalability more suitable for handling unpredictable growth and for applications that need to support thousands or millions of concurrent users. Cloud platforms like Amazon Web Services (AWS), Microsoft Azure, and Google Cloud offer horizontal scaling through distributed services, where additional instances can be spun up automatically in response to increased demand, thus supporting elastic scaling.
https://en.wikipedia.org/wiki/Scalability
For example, MongoDB, a NoSQL database system, leverages horizontal scalability by sharding data across multiple nodes, allowing it to handle massive amounts of data while distributing the load evenly. Each shard holds a portion of the database, and the system automatically routes requests to the appropriate shard, enabling it to manage large datasets without overwhelming a single server. By using horizontal scaling, systems like MongoDB can grow without a significant reconfiguration, making them ideal for environments where high availability and scalability are critical to performance. This also enables data replication and backup mechanisms, ensuring data consistency and durability in the case of node failures.