How to Design Large Scale Systems¶
Step 1: Clarify the goals¶
Make sure you understand the basic requirements and any clarilying questions.
Step 2: Determine the scope¶
Describe the feature set you'll be discussing in the given solution, and define all of the features and their importance to the end goal.
Step 3: Design for the right scale¶
Determine the scale so you know whether the data can be supported by a single machine or if you need to scale.
Step 4: Start simple, then iterate¶
Describe the high-level process end-to-end based on your feature set and overall goals. This is a good time to discuss potential bottlenecks.
Step 5: Consider relevant DSA¶
Determine which fundamental data structures and algorithms will help your system perform efficiently and appropriately.
Step 6: Describe trade-offs¶
Describe trade-offs while explaining your solution to show you understand large-scale systems and their complexities.