Clarify Scope and Model the Workload

Before calculating infrastructure, define the workload. Identify users, read/write ratio, peak-to-average traffic, payload sizes, geographic distribution, burstiness, and data-retention requirements. Ask whether requests are interactive, batch, streaming, or background jobs.

For a photo-sharing application, the home feed may be read-heavy while uploads are write-heavy. A single average request rate hides these differences. Estimate each important operation separately: feed reads, image uploads, comments, notifications, and search queries.

Use explicit assumptions and label estimates as estimates. If 2 million daily active users each open the feed 20 times a day, that is 40 million feed reads per day. Divide by 86,400 seconds for an average rate, then apply a peak factor to approximate peak load. Real traffic is not uniform, so load testing and production metrics must eventually replace assumptions.

Daily requests to average RPS
const dailyActiveUsers = 2_000_000;
const feedOpensPerUser = 20;
const secondsPerDay = 86_400;
const dailyFeedReads = dailyActiveUsers * feedOpensPerUser;
const averageRps = dailyFeedReads / secondsPerDay;
const peakFactor = 5;
const estimatedPeakRps = averageRps * peakFactor;
console.log({ dailyFeedReads, averageRps, estimatedPeakRps });
💡 The calculation produces an average rate and a rough peak estimate. A peak factor is a modeling assumption, not a guarantee; validate it against observed traffic patterns.
Key Takeaways
  • Estimate each operation class independently.
  • State assumptions and use ranges when inputs are uncertain.
  • Average RPS is not peak RPS.
Knowledge Check

A service handles 8,640,000 requests per day. What is its approximate average request rate?