Importance of knowing your targets while building highly scalable systems
You won’t get a performant and scalable system, by asking someone to build a “really fast and scalable system”.
Demands of the performance and scalability vary for different problems and domains; and accordingly, it needs very different solutions and technologies to deliver these performances.
Software Performance is absolute; you get what you demand.
For Example-Hotel Management System – 10s of thousands of requests/day
Ticket Reservation Systems – 100s of thousands requests/day
Security Platforms – 10s of millions of requests/day
Google Search – billions of requests/day
You can choose the right solution if you know the performance targets. If performance is your objective, always Design, Build and Verify a system towards a performance target.
Sample performance and scale targets –
8 Billion requests of type X, Y, Z to be served reliably within a day
75K requests of type X, to be served by the platform with response times < 1sec
Effective Pass Rates: > 98% (measured based on HTTP response codes)
99.99 % uptime
Hence it is very important to ask the right questions to stakeholders to extract the performance and scalability targets.
Only if you know your performance and scalability targets, you can design, develop, test, and refine these targets.