After rebuilding its web application and mobile stack with Scala, Akka and Play, Walmart Canada experiences faster development and improved scalability.
Walmart Canada is a subsidiary of Walmart and is one of Canada’s largest retailers with over 150 stores. The company is also one of Canada’s largest online commerce providers with a fast growing mobile shopping customer pool.
Walmart Canada wanted to significantly improve their online store experience for users by delivering an immersive, responsive web presence across smartphones, tablets and laptops. Simon Rodrigue, WalMart Canada’s VP of eCommerce, also wanted to cut or maintain backend costs, while gaining flexibility and scalability. To do this he knew Walmart Canada would need:
- A more flexible and iterative development environment for back-end systems. The companys architecture based on Oracle ATG required specialist development teams and long development cycles. Both platforms require specific knowledge. This forced longer product turns and developer startup windows, hindering the overall pace of code development.
- Less reliance on expensive hardware and software. Oracle ATG ran best on expensive custom hardware. This meant Walmart needed to buy expensive hardware to expand capacity and could not “burst on its commodity servers to meet peak loads.
- Improved scalability and performance. Walmart’s legacy enterprise Java infrastructure could only handle limited simultaneous requests per application server. Walmart needed a modern event-driven architecture designed to handle many more concurrent processes and end users per application server without requiring additional compute capacity.
- Easy integration into existing infrastructure and minimal downtime. Because Walmart never closed for business, its ecommerce store couldn’t either. So any upgrades and improvements would need to easily integrate with legacy system components without requiring massive outlays to build a second, shadow architecture.
We chose Scala, Akka and Play Framework because we recognized that we needed to switch to a Reactive development environment and decouple critical components in order to allow for faster development and better scalability. With the help from Lightbend and SapientRazorfish, we dramatically improved our performance on mobile devices and saved money by moving to commodity hardware that allowed to scale on demand and stop building for peak loads.Simon Rodrigue VP of eCommerce at Walmart Canada.
Walmart’s tech leadership opted for a 360-degree upgrade of the ecommerce experience and back end, with the help of consulting partner SapientRazorfish. Big supporters of open source software projects, Walmart and SapientRazorfish considered various programming languages before deciding on a Scala stack. Because Scala runs Java code natively, Walmart would be able to gently transition out of its legacy stack and towards a modern, Reactive environment. Existing Scala, Akka and Play leverage modern multi-core architecture capabilities to handle massive numbers of concurrent users by default without requiring cumbersome multi-thread Java programming. By separating Scala-powered tasks from those that required ATG, SapientRazorfish and Walmart could move a significant percentage of back-end tasks to commodity virtual machines running on Walmart’s internal private cloud.
By rebuilding its entire web application and mobile stack with Scala, Akka and Play, Walmart Canada saw dramatic improvements. With the newly split back-end architecture, Walmart Canada had its most responsive Black Friday ever. In the four weeks after launch Walmart enjoyed a 20% boost in conversions on web traffic and a 98% increase in mobile orders. Walmart Canada saw a 36% reduction in visitor page load times. Walmart’s rebuilt back-end handled roughly 400,000 page views per hour at peak load times and millions of simultaneous requests from Walmart Canada’s AJAX
front-end. The move to Lightbend's Scala empowered:
- A faster and cheaper development process: “The Walmart and SapientRazorfish development teams were able to function in a far more agile fashion when developing on Play than when we were developing on Oracle Commerce or APG tool kits,” explains Rodrigue. Startup time for a developer on Play was roughly 7x less than for Walmart Canada’s legacy code environment. Using Play reduced development times by 2x to 3x, according to SapientRazorfish lead architect Ankur Mathur.
- A shift to commodity cloud-powered compute away from expensive hardware: Because Scala and Play were designed from day one to run in multi-tenant environments on small and ephemeral virtual machines, Walmart Canada was able to move roughly 40% of total compute cycles off of expensive dedicated hardware and onto Walmart’s internal virtual infrastructure running cheap commodity x86 servers. This will save Walmart 20% to 50% in web-related infrastructure costs over time.
- Easy integration and minimal interruption. Because Scala runs natively on all Java application servers and integrates seamlessly with legacy Java stacks, the SapientRazorfish team was able to gracefully integrate the new architectural components with Oracle ATG and Endeca with no significant disruption.
We saw immediate improvements as the Scala stack came online that translated into faster response times and higher conversion rate. The bottom line – switching to Scala was good for our bottom line.Simon Rodrigue VP of eCommerce at Walmart Canada.
Read the "Why Retail Giants Are Going Reactive" press release.
View the "Revitalizing Walmart's Aging Architecture for Web Scale" presentation below:
Inspired by this story? Contact us to learn more about what Lightbend can do for your organization.
SapientRazorfish’s heritage of digital pioneering offers their clients a unique advantage in the world of digital transformation across marketing, digital and strategy consulting, and technology services. SapientRazorfish believes that by putting digital at the core of their business, clients not only accelerate the value exchange between their organizations and their customers but can evolve with agility in a fast-changing world.
SapientRazorfish can help clients thrive in this new world because we’ve been helping to create it for the past 25 years. SapientRazorfish’s digital legacy, customer-centric view, and ability to reimagine and quickly realize with agility and learnings-informed strategies offer practical, significant business-critical advantage in these transformative times.
SapientRazorfish is helping companies reimagine and rapidly realize their value and the way they deliver it with radical customer-centricity by offering services IT Modernization, Cloud & Dev Ops, Commerce, Data & Artificial Intelligence, Marketing Transformation, Digital Business Strategy, and Customer Experience. We are spread across 46 Cities, 5 Continents with 1 Vision.
Visit SapientRazorfish to learn more