Scalability
Scalability is the measure of how well a system responds to changes by adding or removing resources to meet demands.

Let's discuss different types of scaling:
Vertical scaling
Vertical scaling (also known as scaling up) expands a system's scalability by adding more power to an existing machine. In other words, vertical scaling refers to improving an application's capability via increasing hardware capacity.
Advantages
- Simple to implement
- Easier to manage
- Data consistent
Disadvantages
- Risk of high downtime
- Harder to upgrade
- Can be a single point of failure
Horizontal scaling
Horizontal scaling (also known as scaling out) expands a system's scale by adding more machines. It improves the performance of the server by adding more instances to the existing pool of servers, allowing the load to be distributed more evenly.
Advantages
- Increased redundancy
- Better fault tolerance
- Flexible and efficient
- Easier to upgrade
Disadvantages
- Increased complexity
- Data inconsistency
- Increased load on downstream services
Go deeper
Real-world write-ups on this topic- How Disney+ Hotstar Scaled to 25 Million Concurrent Usersnewsletter.systemdesign.one · System Design Case Study
- How Disney+ Scaled to 11 Million Users on Launch Daynewsletter.systemdesign.one · System Design Case Study
- How Dropbox Scaled to 100 Thousand Users in a Year After Launchnewsletter.systemdesign.one · System Design Case Study
- How Halo Scaled to 11.6 Million Users Using the Saga Design Patternnewsletter.systemdesign.one · System Design Case Study
- How Instagram Scaled to 2.5 Billion Usersnewsletter.systemdesign.one · System Design Case Study
- How Khan Academy Scaled to 30 Million Usersnewsletter.systemdesign.one · System Design Case Study
Curated by systemdesign42/system-design-academy, licensed CC BY-NC-ND 4.0. All articles open on the original site.