Expected Scale & Capacity
We begin with looking back, do you remember the lecture on Requirements Engineering we had in the last section?
There we talked about quantitative non-functional requirements that help you to understand the expected scale of a system.
The metrics we got to know were:
- Daily active users - DAU for short
- Peak active users - A multiple that indicates the height of expected peak loads.
- Activities per user, describing how often users interact with the system per day.
- Request Size, the size of each request that is associated with an activity.
- Read/write Ratio - The proportion of read to write requests.
- Replication - a multiple that tells us how often the same data should be duplicated in our databases, for higher reliability and read scalability.
Now it's time to pick-up where we left off and understand how and why we can use these number to estimate the three prominent capacity figures: Request, Bandwidth and Storage.
Highway Analogy 🚙 🚗
Let's look at an analogy to visualize their relationship.
If you were asked to design a highway instead of a software system,
- Throughput would describe the amount of vehicles expected to travel on the highway every day.
- Bandwidth would describe the amount of lanes the highway has. Thereby, it defines how many vehicles can travel on it in parallel. 🛣️ 🛣️
- Latency is a dependent variable that describes the time it would take a vehicle to travel from its origin to its destination over that highway.⏱️
Metrics of Interest