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.
Razorfish’s world class capabilities in digital strategy and organizational change, experience design, digital media and content, technology, and analytics and measurement that enable transformational work for clients including Citigroup, McDonald’s, Mercedes-Benz USA, Microsoft, Nike China, Unilever, Uniqlo, and Walmart. Its team of 3000+ experts spans 20 regions, including Australia, Canada, China, France, Germany, Hong Kong, India, Italy, Singapore, the United Kingdom and the United States.
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 Razorfish, 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 Razorfish. Big supporters of open source software projects, Walmart and Razorfish 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, Razorfish 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 Razorfish 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 Razorfish 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 Razorfish 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.