Employee Story | Swapnil Deshpande
“The only way to discover the limits of possible is to go beyond them into the impossible.”
– Arthur C. Clarke
Being a software developer is a journey full of amusing experiences, and I am living it every passing day.
Recently, we were working on an android application for the marketing domain.
When an organization onboards on this application, the system creates a separate database for all the stakeholders who sign up from that specific organization, the idea was to use a multi-threading database.
Here, we were facing a challenge related to thread-pull configuration, as 90% of the connections were already occupied and we needed to reconfigure to function well.
Deep down, handling the concurrency for the system was the issue that needed attention to fix this problem.
Instead of going for an upgrade, we analyzed the system concurrency for external conditions, the time user spends after establishing a connection, and the number of simultaneous users accessing the system.
Based on these metrics we were able to figure out the concurrency requirements for the system.
To address this, we made changes to the connection requests which were allowed to the main database and also set up a max idle time-out property to 10 seconds which would automatically release the connection, if idle.
There is always room for innovation, it just depends on how far you decide to dig.
What would you do in such a case, go for an upgrade or reevaluate for concurrency requirements?