Capacity Planning: Don't Run Out of Room
Capacity planning matches your system's resources to user demand, crucial for handling traffic spikes or budgeting cloud spend. The main footgun is planning for theoretical 'design capacity' instead of realistic 'effective capacity' which accounts for…
Why it exists
Capacity planning exists to prevent systems from failing due to insufficient resources when demand changes. It's the proactive process of managing compute, storage, and network resources to meet business goals and user expectations, avoiding costly outages and performance degradation.
The mental model
Think of a highway. Its 'design capacity' might be 2,000 cars per hour per lane in perfect weather. Its 'effective capacity' on a rainy day with an accident is far lower. Capacity planning for software is about planning for the rainy day, not the perfect one. It's the discipline of understanding and provisioning for your system's real-world limits, not its theoretical maximums.
How it works
The process involves measuring current performance and resource utilization, then forecasting future demand based on business projections or historical trends. You model how your system will behave under that increased load to identify potential bottlenecks. The key is distinguishing 'design capacity' (the max work possible in a perfect world) from 'effective capacity' (the max work possible given real-world constraints like quality problems, delays, and dependencies). You then provision resources to meet the forecasted 'effective' demand, plus a safety buffer.
When to use it
Capacity planning is a continuous process for any production system with a service-level agreement (SLA). It is especially critical before predictable high-traffic events like a product launch, a major sale, or a marketing campaign. It is also a core part of long-term architectural planning and budgeting for cloud infrastructure.
When not to use it
It's less critical for non-production environments or internal tools with a small, fixed number of users. For highly elastic, serverless architectures that scale automatically, the focus may shift from pre-provisioning capacity to managing cost and setting scaling limits. However, even then, you must plan for the capacity of stateful downstream dependencies like databases that may not scale as easily.
One canonical example
An e-commerce site planning for a flash sale. The 'design capacity' might be 10,000 checkouts per minute, based on load testing individual services in isolation. However, the 'effective capacity' might only be 4,000 checkouts per minute when the whole system runs together, due to payment gateway latency and database contention. A good capacity plan provisions for the 4,000/min rate plus a safety margin, and includes a strategy for graceful degradation if demand exceeds that.
Interview question
In capacity planning, what is the key distinction between 'design capacity' and 'effective capacity'?
- a.Design capacity is for long-term strategic planning, and effective capacity is for short-term tactical adjustments.
- b.Design capacity is the initial resource allocation during development, whereas effective capacity is the dynamic scaling in production.
- c.Design capacity focuses on hardware limitations, while effective capacity primarily addresses software performance bottlenecks.
- d.Design capacity refers to the system's theoretical maximum under ideal conditions, while effective capacity considers real-world constraints and dependencies.Correct
Why? this is the answer
The card explicitly defines 'design capacity' as the maximum work possible in a perfect world and 'effective capacity' as the maximum work possible given real-world constraints like quality problems, delays, and dependencies. Option B is incorrect because the distinction is not about the stage of development or scaling mechanism, but rather theoretical vs. real-world performance.
Just read this? Test yourself on what you have been reading.
Read the original → en.wikipedia.org
Put your scrolling time to good use
Learn one idea, try a quiz and save useful cards for revision. Tezvyn makes it easy to learn and stay current in your tech field, a few minutes at a time.
The iPhone app is on the way
We are building it. Until it lands, nothing here is held back from you: every interview card, your saved cards, streaks and the job board all work in Safari, plus hundreds of free practice quizzes of thirty questions each. Sign in and it all carries over to the app the day it arrives.
Want it as an icon? Tap Share at the bottom of Safari, then Add to Home Screen. It opens full screen and the cards you have read stay available offline.
We are hiring for this. Open roles that interview on sre — each one lists the topics its interview covers.
See open roles