This site uses cookies and by using the site you are consenting to this. We utilize cookies to optimize our brand’s web presence and website experience. To learn more about cookies, click here to read our privacy statement.

SPR Makes Online Booking Program Shine for National Beauty Retailer

A bathroom with a wooden shelf for handmade soaps.

A nationwide retailer of cosmetics was customizing an online retail salon booking and administration application for their 1250+ stores/salons across the country. The new application, tested under load, was only able to meet application SLAs while mimicking 5% of their retail locations. The performance team felt that it was “impossible” to support the full chain of retail stores. SPR was brought in to improve the application’s performance and verify the application on the full load of all retail locations.


While the new application promised a significant upgrade in functionality over the existing retail booking/reporting application, there were challenges from the get-go:

  • The new application had been written by a third party and the client did not have developers who were comfortable with the application.
  • There weren’t any SMEs available to verify any coding logic or architectural/design decisions.
  • Additionally, the client was rolling the application out to Google Cloud Platform and they had little experience with that hosting platform.


SPR, as part of the cross-functional Performance team, led daily meetings to plan day-to-day activities as well as identify the long-term plan to prepare for rollout – including testing scenarios, increasing hardware capabilities, and testing platform capabilities like auto-scaling of Kubernetes containers. SPR also worked directly with the team to identify specific modules that were bottlenecks and needed to be re-written. The Performance team consisted of members of many teams, so SPR was able to make changes to the application itself, the database, and the hosting environment. Additionally, the team also included people from the load testing team, so SPR could make changes and quickly do tests to verify the impact of changes.


The application was a micro-service architecture, written using Node.js, and deployed as Docker containers orchestrated using Kubernetes on the Google Kubernetes Engine platform.

LoadRunner was used for load testing and Dynatrace was used for performance monitoring.  Sumo was used for log harvesting and viewing.  The database was PostgresDB.

As the team did load testing with a defined set of SLAs for particular user actions (login, create a new reservation, view existing reservations, etc.), the Business team worked with representatives of the salons to validate functionality. The application needed to be easy to use and highly intuitive since both employees and consumers would be scheduling appointments on it.

The rollout included remote training for 3-4 people per retail site who would then train the rest of the location’s staff. As the team began to improve performance, they managed to keep up as the client was rolling out the application to new sites. In the end, SPR was able to run the final acceptance tests to verify the application on the full load of ~1,250 retail locations, using almost half of the hardware that had originally been estimated.