
Here are 5 steps to crack any system design questions in general.
-
Scenario: case/interface
- What are the typical use cases?
- What kind of abstraction do you provide?
- What do the APIs look like?
-
Necessary: constrain/hypothesis
- How many total users and daily active users do you have?
- How many transactions do you have?
- How many concurrencies or parallel executions does it require?
- How much is the peak load?
- How fast does it have to be? Or how much latency can it endure
-
Application: service/algorithm
- Complexity and Big O analysis
-
Kilobit: data
- How much is the generated data
- How much space does it need to persist
- Where to store the data. File system? SQL database? NoSQL database?
-
Evolve:
- Optimization
- Extensibility
- Scalability
- Availability




近期评论