Why designing highly available services important? ⚡
Because services are only useful when they’re online. Unavailable services not only lead to a loss in revenue but also affect the trust of your customers.
So, the next time you design any system, have a plan B for every plan A and ensure the system auto-recovers from partial failures. Some key concepts that would help you achieve this are
- auto-recovery through a leader election
- geo-distribution for regional outages
- data replication and redundancy
- keep the compute stateless
You possibly cannot achieve 100% availability across all types of failures and hence it is important to understand what you are okay tolerating. For example, not having your database available in case of a DC outage is an okay and acceptable trade-off for some use cases.
⚡ system design December 2023 cohort is open for admission, only 55 seats remain; enroll to learn system design the right way
arpitbhayani.me/course