Ram Ram Everyone
Let's start learning System Design from Day-0,
Now, when we are starting out, don't expect of creating systems from yourself,
At starting, just focus on basics of System Design and try to understand each thing with slow pace.
How to Approach System Design?
We have two ways for this,
System Design Approach
Incremental Approach
System Design Approach:
We apply this, when we know what system we are building and have a clarity over it.
Start from core:
We start from initial state, and we do follow building it, part-by-part.Spiral Flow:
In this, we start from the outer layer, then complate layer by layer.
For Example:- For Creating a Trading platform, you need a trading API,
without which we cannot build our product.
Let's move towards our next approach,
Incremental Design Approach:
It is the implementation or working of our system. In this, we don't have clear motive initially.
In this, we know how a component will work:
underload or at scale
Some steps in Incremental design are as follows:
Start with Day 0.
See how a component behaves initially.
Identify Bottle neck.
Re-Architecture.
Repeat
Some points:
Don't run for Redis, Cassandra, blah blah, juat focus on core fundamentals only.
Be an open minded and don't stick to any particular language.
Access Pattern
offline = not available
online = available
whether the ticket is available or not,
when we do Get/status/users? id = (s1, s2, s3, s4, s5)
We are not sending it one by one, like checking if seat 1 is vacant or seat 2, like this.
We created a batch of 5 seats and sent a Get request to the API.
By doing, in a batch and not sending one by one requests to API, we are saving the Network call and saving system from overwhelming with requests.
Must check:
Heartbeat Mechanism
Thanks for reading
Hava A Good Day👍🏼