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