Mi9 Retail

How we helped Mi9 Retail improve their scalability and performance

Mi9 Retail is a leading enterprise software and digital media company that provides integrated online shopping solutions to the top businesses US supermarket sector. The powerful platform is enhanced with Sitecore to create great digital experiences that help attract, engage and retain its users throughout their consumer journey. Sitecore commerce connect is used to combine Mi9’s platforms into a seamless offering that allows their customers to optimize their online revenues.

The challenge

Mi9 Retail undertake all their Sitecore development in-house but needed our experience to adjust their solution to drastically improve loading speeds and to get the most out of Sitecore’s scalability. Small mistakes and sub-optimal Sitecore code was being magnified under high load and severely impacting the performance of the overall platform.

Mi9 Retail’s platform needed to serve up to 4,000 concurrent users but found that components were failing with just 20 users. Loading speed was poor with as little as 10 concurrent users. This was a huge problem for the ecommerce brand, that could threaten the organisation’s business opportunities and revenue.

Their current approach internally wasn’t working, and they were failing to capitalise on their digital infrastructure. They required expertise in rescuing poor Sitecore implementations, and specialist intervention.

The approach

We carried out a comprehensive Sitecore audit to uncover any opportunities to make significant improvements to the code base and configuration. The audit highlighted two main aspects that required attention:

  1. High volumes of database reads required to render a page on each request. This identified sub-optimal data-layer and item-level caching and inefficient use of search indexes.
  2. Inefficient components with complex functionality that were preventing optimal front end and output caching. Due to its dynamic nature, it needed to access a significant number of items to calculate what to show to a given user on a given page.

Addressing these problems required different approaches. The first issue could be addressed with a detailed analysis of the code and a series of optimisations. The second needed a fundamental re-think of the functionality and a re-evaluation of the requirements.

How we fixed it

An important feature of Kagool’s engagement with Mi9 Retail was their desire to learn from us and be very involved in the remediation efforts. Rather than taking the code, fixing it and then giving it back. We worked with the amazing team at Mi9 Retail (often on site with them in Dublin) over the course of several months.

 

"At the time that Mi9 Retail reached out to engage with Kagool, we had already spent a considerable effort in producing a platform with a lot of potential, but which had nowhere near the performance capabilities required to meet our needs. 

We had hired contractors directly, contractors with years of experience of using Sitecore, but we could not find the in-depth knowledge that was ultimately essential to solving our problems.  Kagool immediately impressed us with the breadth and depth of their Sitecore experience and understanding.  Their impact to the platform on starting to work directly with us was immense and immediate."

- Software Engineering Manager, Mi9 Retail

The process for the first challenge was to undertake a controlled performance investigation. We used Sitecore’s tooling to show us the execution time of various components. Combined with other code analysis tools we would identify a problematic piece of code, refactor the code, deploy and then re-test.

This process yielded significant improvements and got us close to the required performance. However, we still needed to rework the inefficient components preventing optimal front end and output caching.

At Kagool, we always start performance optimisation during the planning phase. We have found that unless you design for performance, you will struggle to meet performance budgets with optimisations during build. In this scenario, it meant we revisited the drawing board to map out the business logic and end user requirements in addition to understanding how business users needed to manipulate the system.

We eventually completely redesigned the functionality as part of a proof of concept. This was delivered into a test environment for acceptance by business users and so that we could run performance tests. On successful completion of the testing phase we then handed the functionality over to the Mi9 Retail development team, so that they could enhance it further following our pattern.

Results

From a starting point of struggling to run the site with a load of 50 concurrent users, we continued to iterate on performance improvements until we were comfortably handling 4,000 concurrent users.  TTFB on page loads went from erratic times ranging between 6 and 18 seconds, to a consistent 0.5 to 1.5 seconds.

While the performance of the site was a top priority, it was equally as important to have a consistent shopping experience.  Kagool provided the knowledge to achieve that consistency, giving Mi9 Retail the confidence to push forward with the plaform.

Summary and next steps

We proved that Sitecore was capable of meeting huge traffic demands and working in an efficient manner.

The platform, with our improvements, was put under a prolonged period of intensive load testing. We successfully ensured pages loaded quickly with 4,000 concurrent users on the platform in conjunction with the Mi9 retail team. We managed to meet the targets without the addition of extra infrastructure and since going live, the platform has been serving the US grocery market reliably ever since.

We have continued to support Mi9 Retail with ad-hoc consultancy and a 24/7 Sitecore Support service. For further information about how we can help with your next project – get in touch.