⬅ Previous Topic
Functional vs Non-Functional Requirements in System DesignNext Topic ⮕
Latency vs Throughput in System Design⬅ Previous Topic
Functional vs Non-Functional Requirements in System DesignNext Topic ⮕
Latency vs Throughput in System DesignCapacity estimation is the process of calculating how much load your system needs to handle. It helps you estimate the required hardware, bandwidth, database size, and other resources based on expected usage.
This step is typically performed early in the system design phase, especially in interviews and real-world system architecture planning. It ensures that the system will be scalable, responsive, and cost-effective.
Without proper capacity estimation, a system might crash under high traffic or overuse resources unnecessarily. It helps in:
Let’s say we are designing a URL shortener like Bit.ly. First, we must understand the usage pattern.
If we wanted to support the service for 3 years without archiving any data, how much storage would we need?
3 years = 36 months → 162 GB × 36 = 5.8 TB approximately
Imagine you’re designing a basic video streaming service.
How many CDN servers would we need if each server can handle 5 Gbps of traffic?
Always follow a logical, layered approach:
Assume 1 month = 30 days and 1 year = 365 days unless specified otherwise.
You are building a chat app. If 2 million users each send 20 messages per day (average message size 200 bytes), how much storage is needed per day?
⬅ Previous Topic
Functional vs Non-Functional Requirements in System DesignNext Topic ⮕
Latency vs Throughput in System DesignYou can support this website with a contribution of your choice.
When making a contribution, mention your name, and programguru.org in the message. Your name shall be displayed in the sponsors list.