System design ยท Fundamentals
Vertical scaling has a ceiling
Scaling up gives one machine more CPU, memory, or faster storage. It is operationally simple and can be a good first move, but hardware has limits and a large machine can become an expensive single failure domain.
Scaling out adds machines. It increases aggregate capacity and can improve fault tolerance, at the cost of coordination, routing, replication, and partial failures.