Data-Intensive Application Principles
Scalability: Horizontal vs. Vertical
Scalability refers to the system’s ability to handle increasing workloads. Horizontal scalability involves adding more machines to your system, while vertical scalability means upgrading the hardware of a single machine.
Avoid
# Vertical scaling
Upgrade existing server from 16GB to 64GB of RAM and faster CPUs.
Prefer
# Horizontal scaling
Add more machines to the cluster to distribute the workload across nodes.
Benefits:
- Horizontal scaling offers better fault tolerance and can handle larger workloads.
- Reduces the risk of a single point of failure.
- Improves the system's ability to handle unpredictable spikes in traffic.