System Design
https://github.com/lei-hsia/grokking-system-design
Last updated
https://github.com/lei-hsia/grokking-system-design
Last updated
Scope the problem
Don’t make assumptions.
what features / how much scale do we need
Ask clarifying questions to understand the constraints and use cases.
Steps
Requirements clarifications
System interface definition
Sketch up an abstract design
Building blocks of the system
Relationships between them
Steps
Back-of-the-envelope estimation
Defining data model
High-level design
Identify and address the bottlenecks
Use the fundamental principles of scalable system design
Steps
Detailed design
Identifying and resolving bottlenecks
features
define APIs
availability
latency performance
scalability
durability
class diagram
security and privacy
cost efficiency
API key