Bird
Raised Fist0
HLDsystem_design~7 mins

Back-of-the-envelope estimation in HLD - System Design Guide

Choose your learning style10 modes available
Problem Statement
When designing a system, not having a quick way to estimate resource needs or performance can lead to under-provisioning or over-provisioning. This causes either system failures under load or wasted costs and complexity.
Solution
Back-of-the-envelope estimation uses simple calculations and rough assumptions to quickly approximate system requirements like traffic volume, storage, or compute power. This helps make early design decisions without detailed data or complex tools.
Architecture
User Demand
↓
Rough Inputs
(e.g., users,
↓
Simple Math
(multiplication,
↓
Quick Output
(estimates of

This diagram shows how rough input data flows through simple calculations to produce quick capacity estimates.

Trade-offs
✓ Pros
→
Enables fast decision-making early in design without detailed data.
→
Requires minimal tools and expertise, just basic math.
→
Helps identify potential bottlenecks or resource needs quickly.
✗ Cons
→
Estimates are rough and can be inaccurate if assumptions are wrong.
→
Does not replace detailed capacity planning or testing.
→
May overlook edge cases or complex interactions in the system.
Use during early design phases when detailed data is unavailable and quick approximations are needed to guide architecture choices.
Avoid relying solely on it for final capacity planning or in systems with highly variable or unpredictable workloads.
Real World Examples
Netflix
Used quick estimations to size CDN edge servers based on expected peak streaming sessions before detailed monitoring data was available.
Uber
Applied rough calculations to estimate surge pricing system load during new city launches to provision infrastructure accordingly.
Amazon
Performed back-of-the-envelope calculations to approximate storage needs for new product categories before detailed sales data.
Alternatives
Detailed Capacity Planning
Uses precise historical data and simulations instead of rough assumptions and simple math.
Use when: When accurate data is available and the system is close to production or scaling.
Load Testing
Measures actual system performance under simulated load rather than estimating mathematically.
Use when: When a prototype or system version exists and real performance data is needed.
Summary
Back-of-the-envelope estimation helps quickly approximate system needs using simple math and rough inputs.
It is useful early in design to avoid under- or over-provisioning before detailed data is available.
Its estimates are rough and should be refined with detailed planning and testing later.

Practice

(1/5)
1. What is the main purpose of back-of-the-envelope estimation in system design?
easy
A. To quickly estimate system requirements using simple calculations
B. To write detailed code for the system
C. To create a full architecture diagram
D. To perform in-depth performance testing

Solution

  1. Step 1: Understand the goal of back-of-the-envelope estimation

    This method is used to quickly guess system needs without detailed work.
  2. Step 2: Compare options to the goal

    Only To quickly estimate system requirements using simple calculations matches the quick estimation purpose; others are detailed tasks.
  3. Final Answer:

    To quickly estimate system requirements using simple calculations -> Option A
  4. Quick Check:

    Quick estimation = To quickly estimate system requirements using simple calculations [OK]
Hint: Focus on quick, simple calculations for early guesses [OK]
Common Mistakes:
  • Confusing estimation with detailed design
  • Thinking it involves coding or testing
  • Assuming it requires full diagrams
2. Which of the following is the correct way to start a back-of-the-envelope estimation for a web service's daily traffic?
easy
A. Calculate exact user behavior with detailed logs
B. Estimate average users per hour and multiply by 24
C. Design the database schema first
D. Write the full API specification

Solution

  1. Step 1: Identify the starting point for traffic estimation

    Back-of-the-envelope estimation uses simple averages, not detailed data.
  2. Step 2: Evaluate options for simplicity and relevance

    Estimate average users per hour and multiply by 24 uses average users per hour times 24 hours, a simple and effective start.
  3. Final Answer:

    Estimate average users per hour and multiply by 24 -> Option B
  4. Quick Check:

    Simple average x time = Estimate average users per hour and multiply by 24 [OK]
Hint: Use simple averages and multiply by time units [OK]
Common Mistakes:
  • Starting with detailed logs instead of rough estimates
  • Jumping to design before estimating traffic
  • Confusing estimation with specification writing
3. You estimate a system will have 10,000 users daily, each making 5 requests on average. What is the total number of requests per day?
medium
A. 100,000 requests
B. 2,000 requests
C. 15,000 requests
D. 50,000 requests

Solution

  1. Step 1: Multiply users by requests per user

    10,000 users x 5 requests each = 50,000 requests.
  2. Step 2: Confirm total requests per day

    The total is simply the product of users and requests per user.
  3. Final Answer:

    50,000 requests -> Option D
  4. Quick Check:

    Users x requests = 50,000 [OK]
Hint: Multiply users by average requests per user [OK]
Common Mistakes:
  • Adding instead of multiplying
  • Mixing up users and requests
  • Choosing an option too large or too small
4. A designer estimated 1 million requests per day but forgot to consider peak hour traffic. What is the likely problem with this estimation?
medium
A. Ignoring average request size affecting storage needs
B. Overestimating total daily traffic causing wasted resources
C. Underestimating peak load leading to potential system overload
D. Not including user authentication time

Solution

  1. Step 1: Understand the impact of ignoring peak traffic

    Peak traffic is often much higher than average, so ignoring it underestimates load.
  2. Step 2: Identify the consequence of underestimation

    System may overload during peak times if capacity is based on average only.
  3. Final Answer:

    Underestimating peak load leading to potential system overload -> Option C
  4. Quick Check:

    Ignoring peak = underestimation risk [OK]
Hint: Always consider peak, not just average, traffic [OK]
Common Mistakes:
  • Assuming daily average covers peak needs
  • Confusing storage with traffic load
  • Focusing on unrelated factors like authentication time
5. You need to estimate the storage required for a photo-sharing app. Each photo is 3MB, and you expect 500,000 uploads per month. What is the approximate monthly storage needed?
hard
A. 1.5 TB
B. 150 GB
C. 15 GB
D. 1.5 GB

Solution

  1. Step 1: Calculate total storage in MB

    500,000 photos x 3 MB each = 1,500,000 MB.
  2. Step 2: Convert MB to TB

    1,500,000 MB ÷ 1024 ≈ 1465 GB ÷ 1024 ≈ 1.43 TB, approximately 1.5 TB.
  3. Final Answer:

    1.5 TB -> Option A
  4. Quick Check:

    Uploads x size ≈ 1.5 TB [OK]
Hint: Multiply count by size, then convert units [OK]
Common Mistakes:
  • Forgetting to convert MB to GB
  • Mixing up MB and GB units
  • Using wrong multiplication factors
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard