System Design 套路模版

avatar 70530
onethree
9862
22
最近准备 System Design, 渐渐认识到一个套路化的模版的重要性。把自己总结的模板贴出来,希望对大家都有帮助!
Clarify

- Key features/requirements, constraints, scale
- 追认 确认核心需求
- **Estimations: QPS, storage**

High Level:

- high-level architecture and get buy in
- Services
- 模块化, stateless v.s. stateful
- DB
- Relational or NoSQL
- Collect/identify a list of problems to be discussed in the deep dive

Deep Dive

- Algorithm
- API details
- RESTFUL, proto
- Write path, Read path
- DB details
- CAP, prefer A or C?
- read or write heavy?
- schema + query optimazation
- Scale: Load balancer, Cache, DB sharding (estimate), User sessions/stateless, message Q, consistent hashing, CDN, Data center
- Options pros v.s. cons, push v.s. pull model
- Reliability: What if each component fails
- Do we have want: validations, dedup, rate limit, consistency, race conditions
- Security (DDOS, encryption, http v.s. https, DB inject)
- UX

Finishing - Following

- **Performance bottleneck**
- **component failures 每一个组件都可以说过去,并说结果**
- Debugging, monitoring, logging etc.

也请大家一起补充优化!
  • 457
22条回复