
In less than a year, Walmart.com completed the migration to React / Node.js, and we are pleased to inform you about it! The goal of the migration was to create a new platform for improving the efficiency of
WalmartLabs and its engineers in the future.
We are pleased to announce that we have posted in open source
Electrode - the platform on which Walmart.com is built.
Scale Walmart.com
80 million monthly visitors, loads up to 10,000 requests per second, and 15 million products, more than 1 million products are added each month - the load of Walmart.com today. With the e-commerce business, which is the second largest retail company in the US, we need not only to support and improve Walmart.com, but also to maximize our talent and encourage the creative approach of our engineers.
')
Basic goals
In the field of electronic commerce, migration to another platform is a serious undertaking. Technologies are constantly evolving, so it is important to keep up with the times and be competitive. But the reorganization of the entire technical department is a completely different story. With a hundred and a few engineers and dozens of applications, the
Electrode platform was built to solve the main problems faced by all large organizations:
- Streamlining the development cycle - we wanted our developers to be able to join the development as quickly as possible, thereby reducing the time for developing projects. At the initial stage of the project, developers need to do a significant amount of work on the configuration of various technologies (such as server-side rendering, redux, webpack, css modules, post css, deploy scripts, internationalization, JS / CSS linting, configure karma / mocha, code coverage and etc.). To launch new applications, we wanted to combine all this in one simple library with an extensible structure, using advanced design. Thus, Electrode allows developers to focus on the implementation of the functionality that customers need.
- Structure and Advanced Technologies — With a couple of hundred engineers working on dozens of different projects at WalmartLabs, we need to be sure that all our applications are architecture-consistent, reliable, and easily expandable. We also need to ensure the possibility of frequent updates on all projects, providing developers with code generation tools that provide a specified structure for the modules and reduce routine work. The Electrode Archetype system gives us a guide and structure for building applications that we can trust.
- Code Reuse - WalmartLabs supports 12 Walmart sites in 11 countries, including SamsClub.com in the US and Asda in the UK. Sharing and using the same React components on different projects is a great way to increase efficiency, but only if you can trust these components, they are high-quality and stable. Electrode Archetype allows you to stick to a certain structure, and tools like the Electrode Explorer make it easy to find the right component among thousands of others.
- Performance / Universal JavaScript - We were confident that server side rendering could improve application performance and SEO, so Electrode provides you with a turnkey solution. But we saw additional features and went further, thereby creating Electrode Caching and Profiling (profiling and keshing components on the server), Above the Fold Render (prevents components from being displayed on the server) and Redux Router Engine (processing asynchronous data on the server).
Electrode provides solutions to the above problems, and we would like to share these solutions with the community.
Use Electrode in your application!
Our philosophy in creating Electrode is that developers can only use what they need without changing the architecture of the application. Therefore, we divided the architecture into three parts:
Electrode Core ,
Electrode Modules and
Electrode Tools .

- Electrode Core - allows you to start a new project quickly with a simple but predetermined architecture using advanced technologies.
- Electrode Modules - gives access to modules that allow you to perform various kinds of tasks from displaying on the server to flexible control settings. These modules can be used independently of Electrode Core, which means that they can be used in your projects.
- Electrode Tools - use our powerful development tools, which include a component search tool ( Electrode Explorer ) for reuse and for optimizing JavaScript bundles ( Electrify and Bundle Analyzer ). These tools can be used in existing applications regardless of the use of Electrode Core.
In short, Electrode is a quality platform for creating Universal React / Node.js applications. With its help, Walmart.com was developed. Now developers can use the Electrode platform or its individual parts, as needed.
How Electrode Influenced WalmartLabs
- Scale of use - most of Walmart.com now works on the Electrode platform, including the homepage, username, basket, payment, categories, and viewing of goods. We are in the process of migrating SamsClub.com to Electrode and are planning to use Electrode for Walmart Grocery next year.
- Performance - our focus on performance has greatly affected our applications. Among the pages returned from the server: the home page is now 20% faster, and the login page is 15%. On the checkout page, which is displayed on the client side, is now 20% faster. Pages that were displayed only on the client side and are now displayed by the server, and we got up to 30% performance improvement in some cases. In addition, the size of the JavaScript code on the page decreased by 20%.
- Developer Productivity - New engineers are starting to develop on the very first day at WalmartLabs. Most engineers are able to produce working code within a few days of starting work.
- Code reuse - we see an enormous amount of React and Redux components used in all of our applications and brands, like Walmart.com and SamsClub.com. As a result, when one application or brand can quickly and easily use the functionality created for another brand / application, there is a significant reduction in project development time.
- In general, our engineers are satisfied with the use of advanced technologies, we have an active internal developer community, and Walmart is competing in the market more effectively.
Investing in the future
We are still improving Electrode. Further improvements will be directed to mobile devices, performance, and more. And because WalmartLabs is committed to open source, our investment is an investment for all developers who want to use Electrode.
We would be very happy to see applications created using Electrode. You can learn more about
Electrode's functionality on the official
electrode.io site, read the
Quick Start Guide, or just study the project on
GitHub .