System Design Flashcards

1
Q

List the 7 Steps for System Design Interviews

A
Step 1: Requirements clarifications
Step 2: System interface definition
Step 3: Back-of-the-envelope estimation:
Step 4: Define data model:
Step 5: High-level design:
Step 6: Detailed component design:
Step 7: Bottlenecks:
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Requirements clarifications

A

As the first step in your interview, you should ask questions to find the exact scope of the problem.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

System interface definition

A

Define what APIs are expected from the system. This would not only establish the exact contract expected from the system but would also ensure if you haven’t gotten any requirements wrong

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Back-of-the-envelope estimation:

A

What scale is expected from the system (e.g., number of new tweets, number of tweet views, how many timeline generations per sec., etc.)
How much storage would we need? This will depend on whether users can upload photos and videos in their tweets?
What network bandwidth usage are we expecting? This would be crucial in deciding how would we manage traffic and balance load between servers.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Define data model:

A

identify various entities of the system, how they will interact with each other and different aspect of data management like storage, transfer, encryption, etc

Which database system should we use?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

High-level design:

A

Draw a block diagram with 5–6 boxes representing core components of your system. You should identify enough components that are needed to solve the actual problem from end-to-end.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Detailed component design:

A

Dig deeper into 2–3 components; interviewers feedback should always guide you towards which parts of the system she wants you to explain further, tradeoffs

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Bottlenecks:

A

Is there any single point of failure in our system? What are we doing to mitigate it?
Do we’ve enough replicas of the data so that if we lose a few servers, we can still serve our users?
Similarly, do we’ve enough copies of different services running, such that a few failures will not cause total system shutdown?
How are we monitoring the performance of our service? Do we get alerts whenever critical components fail or their performance degrades?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly