System Design Step by Step Guide

Lots of people struggle with system design interviews (SDIs) primarily because of

  1. Unstructured nature of SDIs, where we are asked to work on an open-ended design problem that doesn’t have a standard answer
  2. The lack of experience in developing large scale systems
  3. We have not spend enough time to prepare for SDIs.


Here we’ll follow a step by step approach to solve multiple design problems using these 7 steps.

Step-1: Requirements Clarifications
Twitter Example:

All such questions will determine how our end design will look like.


Step-2: System interface definition
Some examples for our Twitter-like service would be:


Step-3: Back-of-the-envelope Estimation


Step-4: Defining data model
Here are some entities for our Twitter-like service:
Considerations


Step-5: High-Level Design (HLD)
For Twitter, at a high level :


Step-6: Detailed Design


Step 7: Identifying and resolving bottlenecks




← Previous: System Design Concepts - 2

Next: Tools and Techniques →