A few days ago, I had an opportunity to have an interview for Back End developer position.
The hiring manager provided one problem to resolve, in order to determine about my expertise of platform management.
So this time I would like to introduce my experience here.
I hope this would be helpful for all members here.
As a beta offering for our product, we are trying out a new third-party recommendation service to help suggest a next action for users. We surface those next actions as part of the user's landing page when they sign in – maybe it's sending an important message, checking off an important todo, etc.
You're settling in at your desk after a delicious and energizing team lunch when you receive a performance alert from the monitoring system. Rendering the beta landing page for a user is averaging around 10 seconds, up from the normal average of ~800ms.
About 10% of the users in the beta are even seeing the dreaded 504 Gateway Timeout error. The beta users represent a small subset of the overall traffic, but this is something that we'd like to understand and fix in the next few days.
No changes have been deployed to the frontend that powers the recommendation service in several weeks.
And here's a sequence diagram showing the flow of the request through the main components of the architecture:
The performance issue was generated after adding "Recommendation" service.
So I think the main problem is
1) Redis caching. assigned Redis instances might be too small , and not be able to meet the needs the request.
2) We need to check about caching period, cache expiration time might be too small, and frequently reload the landing page will reduce the response performance.
2) Hosting server's in & outbounding bandwidth might be exceeded , more than assigned to the instance.
Unluckily I did not pass this interview at the top ranking, and failed to get this job opportunity.
But I had a great feedback from the technical managers.
I hope you to resolve this problem, and hope to be a bigger help for you.