Horizontal Scaling
- typically, Load Balancing is required
- more resilient and reliable
- typically requires more network calls (RPCs)
- Data inconsistency is possible
- unlimited scaling
Vertical Scaling
- single point of failure
- faster inter process communication because of lesser RPCs
- data consistency is maintained
- there are hardware limits to scaling
Usually, a combination of both are used IRL