Horizontal scaling also known as Scaling out simply means adding more nodes/machines to your infrastructure to the existing hardware resource pool to cope with new demands.
If you are hosting an application in one server and the popularity of your application grows to a level that it can no longer handle the traffic comfortably, adding a new server may be a solution.
This is similar to delegating workload to several employees instead of one.
Advantages of horizontal scaling
Eliminates a single point of failure - Relying on a single node for data and all your operations is risky since you will experience downtime when it fails. Distributing your load among multiple nodes eliminates a single point of failure which makes your system resilient to random hardware failures.
Fewer periods of downtime - Since you are adding more machines to an existing pool you don’t need to switch off the old one when scaling therefore downtime is almost non-existent.
Increased System Performance - Horizontal scaling provides additional endpoints for client connections which distributes the load across all the nodes which increases system performance.
Disadvantages of horizontal scaling
Increased Complexity - Multiple servers are harder to maintain instead of one. You will need to configure load balancing and ensure that the nodes communicate and synchronize effectively.
Expensive - Adding multiple servers is more expensive compared to upgrading existing ones.