Horizontal Scaling is a scaling of the same servers horizontally. It happens by “cloning” the server or database with the same specs and using Load Balancer to redirect to different servers. It is much better than Vertical scaling where you have to invest in expensive hardware. It also eliminates a single point of failure.
Disadvantages
- Adds complexity and you have to ensure that you distribute load evenly. Otherwise, it will become a performance bottleneck
- You cannot keep data on a server (needs to be stateless) so sessions etc. needs to be stored in persistent cache (Redix, memchaced) or Database (SQL or NoSQL).