Solve Any
System Design Interview Question
The 8-part RESHADED method:
1. Requirements Step 1: Requirements Step 2: Estimation
2. Estimation
Gather functional & Estimate hardware & infrastructure
non-functional requirements needed to implement at scale
3. Storage schema (optional) Consider:
• System goals
• Key features
Consider requirements for:
• Number of servers
• Daily storage
4. High-level design • System constraints
• User expectations
• Network
5. APIs
Step 3: Storage schema (optional)*
6. Detailed design Articulate data model
7. Evaluation Define:
• Structure of data
8. Distinctive component/feature • Tables to use
• Type of fields in tables
• Relationship between tables (optional)
Building Blocks Glossary: *Relevant when you:
• Expect highly normalized data
• Will store different parts of data in various formats
Domain Name System: Maps domain names to IP • Face performance & efficiency concerns around storage
addresses.
Load Balancers: Distributes client requests among
Step 5: APIs
servers.
Databases: Stores, retrieves, modifies, & deletes Step 4: High-level design Translate functional requirements into
data. API calls
• Build high-level design
• Choose building blocks to meet functional
Key-Value Store: Stores data as key-value pairs. E.g.:
requirements
• Requirement: Users should be
able to access all items
Content Delivery Network: Distributes in-demand For each, identify:
• API call: GET / items
content to end users. • How they work
• Why they're needed
Sequencer: Generates unique IDs for events & • How they integrate
Step 6: Detailed design
database entries.
Service Monitoring: Analyzes system for failures & • Improve high-level design
sends alerts. • Consider all non-functional
requirements & complete
design
Distributed Caching: Stores frequently accessed
data.
Distributed Messaging Queue: Decouples
messaging producers from consumers. Step 7: Evaluation
• Evaluate design against
Publish-Subscribe System: Supports asynchronous requirements
service-to-service communication. • Explain trade offs & pros/cons
of different solutions
Rate Limiter: Throttles incoming requests for • Address overlooked design
services. problems
Blob Store: Stores unstructured data.
Distributed Search: Returns relevant content for (8*) Distinctive
user queries. component/feature
Discuss a distinctive feature that
Distributed Logging: Enables services to log events. meets requirements
This layered visual shows dependencies between
• E.g. Concurrency control in
building blocks. Blocks in lower layers support
Distributed Task Scheduling: Allocates resources to high-traffic apps
those above.
tasks.
* Timing varies. Best done after
Sharded Counters: Counts concurrent read/write completing design (E.g. Step 6 & 7)
requests.