# Scaling

Horizontal scaling is adding more machines to deal with increasing requirements. These machines handle requests in parallel to improve user experience.

Vertical scaling is replacing the current machines with more advanced machines to improve throughput and hence response time. The techniques are used in conjunction in real world systems.

# Horizontal vs. Vertical Scaling

Horizontal Vertical
Many Servers Huge Server
Load Balancing Required N\A
Resilient Single Port failure
Network Calls(RPC)-> transactions among servers Inter-Process Communication Data Inconsistency Consistent
Scales well Hardware limit
Last Updated: 11/21/2020, 9:42:13 AM