Related Posts
Why User-Centered Design is Crucial in Software Product Engineering
In the fast-paced world of software product engineering, user-centered design (UCD)... read more
You don’t need a lot of startup capital to build a product
“Now that I have clarity on the product requirements, we have put... read more
What makes Node.js so popular among developers and companies
There has been a lot of buzz lately about Node.js, and... read more
Voice AI for gaming: Creating immersive and interactive experiences for players
Voice AI (Artificial Intelligence) is revolutionizing gaming by enhancing immersion and... read more
Goal, not the Technology
Technology plays a crucial role in solving the problem, but just... read more
Is your product learning Emotional Intelligence?
“We are replacing human interaction with our AI-based product. This is... read more
How to build an enterprise software application: Our insights
No matter how fast or radically the world changes, few things... read more
Build Contingencies and Switches , when building scalable software
Everything can go wrong – Build Contingencies and Switches ... read more
Voice AI for Agriculture: Enhancing Farming Practices
Voice AI is transforming agriculture with its revolutionary technology. With the... read more
“We will use it from next week. Will it hold well when all users log in on Monday morning?” A common concern, based on past experience.
The team had done a good job of understanding the scalability requirements, designed an architecture that will scale well. However, during the initial phase, everyone was focused on functionality. Performance was yet to be tested.
As I was reviewing, I found one thing missing – concurrency requirements.
How many users can be active at the same time?
How many requests will simultaneously reach the server?
This is an essential factor for capacity planning. Too less will mean dropped requests and too much will mean higher costs.
There is no correct answer. Concurrency keeps changing based on external events, time of the day, user behavior, etc. It can be predicted only with visibility into past data.
This is where instrumentation comes to help. Build desired counters in the system, record, monitor, and notify them regularly. Allow for the tuning of what to check, what to record, and what to notify. You are going to need regular monitoring and tweaking for the best efficiency.
Do you have the counters built in your product?