Like it or not, we live in interesting times.
The pandemic situation forced us to change the way of thinking of many areas that normally, no one would reconsider. One of the changes that COVID-19 introduced was a significant growth of an eCommerce channel. That channel which till now was just an add on to a brick-and-mortar suddenly became the most critical pillar of the business.
Customers are facing high-traffic peaks that are atypical compared to the previous, analogical years. Limited budgets most likely left their mark in the code, architecture and configuration.
And what is even worse – Black Friday is just around the corner.
As the business doesn’t want to lose the customers, we need to react somehow. With a limited time (and probably a larger budget than before) we need to diagnose and optimise the solution.
To facilitate further discussions and indicate possible directions of changes to accelerate eCommerce, we have prepared a list of questions and tips that should help you to find the direction of the changes and build the plan.
1. How many products does the catalogue have? (if the product catalogue has several thousands of products that is a small catalogue – and something is wrong if the system is slow)
2. How many registered users are there?
3. How many orders per day on average do they generate? (if below 1000 and the system is slow something is wrong with the implementation)
4. Is there any time range (e.g., morning, midday) with the most orders – is someone monitoring it?
5. Is the “staging” feature in use? If so, how long does the sync take?
6. (B2B only): Can users operating from the store level cause any “large queries” – e.g., by generating some reports?
7. (B2B only): Does it use a large number of contractor specific prices (based on vendor -> buyer agreement)?
8. Are proper log cleaners / unused baskets configured?
Data structure & cron jobs
9. Do many-to-many relationships have separate tables?
10. Are the appropriate table attributes indexed?
11. Do cron jobs (especially indexation / Solr) have a separate node assigned to them?
12. To what extent is Solr used? Are the “product listing pages” in 90% rendered from data taken from Solr (except maybe prices/stock levels)?
13. If Solr is used, on how many separate nodes was it deployed?
14. Is the back-office deployed to a separate node / VM?
15. Are you monitoring your environments? Are you able to check the metrics of all the system elements?
Based on our expertise there is never a simple answer to the performance issues. The problem is usually more complex and the issues are the result of many factors. Having said that, there is no chance to fix the system without a proper diagnosis. I hope that the questions presented in this article will help you to do that.