Sunday, May 3, 2020

System Design Basics | Post -1

These days System Design questions have become an important part of any interview process. Not just for interviews but to for the overall improvement  of oneself, one must have the knowledge of System design so that good foundation can be laid from the very beginning.
In coming posts i will touch this topic.

Flow

A. Understand the problem and scope

Define the use cases, with interviewer's help.
Suggest additional features.
Remove items that interviewer deems out of scope.
Assume high availability is required, add as a use case.

B. Think about constraints

Ask how many requests per month.
Ask how many requests per second (they may volunteer it or make you do the math).
Estimate reads vs. writes percentage.
Keep 80/20 rule in mind when estimating.
How much data written per second.
Total storage required over 5 years.
How much data reads per second.

C. Abstract design

Layers (service, data, caching).
Infrastructure: load balancing, messaging.
Rough overview of any key algorithm that drives the service.
Consider bottlenecks and determine solutions.

Source: https://github.com/jwasham/coding-interview-university#system-design-scalability-data-handling

No comments:

Post a Comment