Yesterday we discussed problems like:
• Latency
• Scalability
• Availability
• Durability
But today let’s ask a fundamental question.
Why do you think systems break when the load increases?
Day 3 of “Learning Systems Along With Sri”
If a system works for 1,000 users, why does it not just keep working for 1 million users?
Let’s go back to our good old single-server OTP login system.
A single server is currently handling everything:
User → API → OTP Generation → Database → SMS
For small traffic, this works great.
But every system has hardware limits.
🧠 CPU Limits
The server/mind can only process a number of requests per second.
If requests come faster than the CPU limits of processing them,
Requests start waiting in a queue.
Response time increases.
This leads to latency.
💾 Memory Limits
Every request consumes memory.
If too many users connect at once, the system may run out of memory.
Applications crash or slow down.
💿 Disk / Database Limits
When millions of requests try to read or write data,
The database becomes overloaded.
Connections exhaust.
Queries slow down.
This causes system-wide delays.
🌐 Network Limits
Even network bandwidth is limited.
If too many requests hit the server,
packets start queuing or dropping.
The
A server is not infinitely powerful.
It has limits on:
• CPU
• Memory
• Disk I/O
• Network bandwidth
When the incoming load exceeds these limits,
the system starts slowing down, failing, or crashing.
This leads to the next question.
If one server has limits…
What if we add more servers?
Could multiple machines share the load?
And if we add more servers…
how do users know which server to talk to?
That’s where tomorrow’s concept begins.
............................................
ASSIGNMENT 🤔
Imagine your server can process 1,000 requests per second. But suddenly your system receives 10,000 requests per second.
What happens to the remaining 9,000 requests?
Think about it.