WIP
2 types:
Scalability techniques:
Sharding: Distributes data across multiple servers in smaller units

Replication: Creates and maintains copies of data across multiple servers

Partitioning: Divides a database into smaller, organized segments

Caching: Improves response times through efficient retrieval of frequently accessed data

How to achieve it:
What to avoid:
Key principles to consider
3 types:
Nines of availability
| Availability % | Downtime per year | Downtime per month |
|---|---|---|
| 90% (1 nine) | 36.5 days | 72 hours |
| 99% (2 nines) | 3.65 days | 7.20 hours |
| 99.9% (3 nines) | 8.76 hours | 43.8 minutes |
| 99.99% (4 nines) | 52.56 minutes | 4.32 minutes |
| 99.999% (5 nines) | 5.26 minutes | 25.9 seconds |
Prioritizing availability is win-win → good for users and system