The app for independent voices

If you want to pass system design interviews

(without getting lucky), learn these 15 heuristics:

1. Latency + Global → CDN

↳ Deliver data from edge servers to reduce latency

2. Read + Bottleneck → Cache

↳ Store frequent reads in cache to reduce database load

3. Write + Spike → Queue

↳ Buffer writes for asynchronous processing during traffic spikes

4. Distributed + Transaction → Saga

↳ Handle multi-service transactions with compensating steps

5. ACID + Relational → SQL

↳ Use a SQL database for strong consistency and transactional integrity

6. Flexible + Scale → NoSQL

↳ Use NoSQL for schema flexibility and horizontal scalability

7. SQL + Scale → Shard DB

↳ Federate and partition data across shards to scale effectively

8. Load + Growth → Scale Out

↳ Add servers to handle extra traffic

9. Traffic + Reliability → Load Balance

↳ Distribute requests evenly for performance

10. Core + Failure → Redundancy

↳ Replicate core services to avoid single points of failure

11. Durability + Faults → Replication

↳ Replicate data for availability and recovery

12. Requests + Spike → Throttle

↳ Limit excessive requests to prevent server overload

13. Load + Spike → Autoscale

↳ Add or remove server capacity automatically to handle changing load

14. Realtime + Updates → WebSockets

↳ Use WebSockets for live, bidirectional communication

15. Retry + Safety → Idempotent

↳ Make operations safe to retry without side effects using idempotency

(What else should make this list?)

Remember, these are just heuristics.

The right solution depends on the requirements.

===

💾 Save this for later & restack it to help others pass job interviews.

Apr 7
at
12:54 PM
Relevant people

Log in or sign up

Join the most interesting and insightful discussions.