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.
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 });- Estimate each operation class independently.
- State assumptions and use ranges when inputs are uncertain.
- Average RPS is not peak RPS.
A service handles 8,640,000 requests per day. What is its approximate average request rate?