Traditionally, retailers have used e-Commerce platforms such as ATG, WCS, Hybris etc. to build and manage their online storefront. These monolith applications were based on three-tiered architecture. Over time, the modules were customized, integrated with many other enterprise systems and a lot of investments were made in running the operations. In recent years, however, many retailers have started to shift away from these platforms towards microservices-based commerce, which offers the flexibility to implement the customized features and scalability needed to meet omnichannel demand.
E-Commerce Modernization: Context
Customer experience is becoming truly omnichannel, contextual and personalized. This brings new challenges to web site functionalities in terms of availability and scalability. Businesses need to be quick in preparing for the ever-changing environment and in their reaction to competition. E-Commerce applications need to evolve to meet these challenges while supporting continuous delivery.
Although Software-as-a-Service (SaaS) platforms can address some concerns, such as cost and availability, retailers often need custom differentiating features and true omnichannel capabilities that are not supported through these platforms. Businesses want to run new experiments quickly or bring efficiency to a process that is typical to their organization. Cloud offerings of traditional e-Commerce platforms do not provide that flexibility.
As a result, the main drivers for the shift towards microservices are:
- The ability to quickly implement changes, quick deployments and rollbacks;
- A need for responsive UI, real-time data and immersive user experience;
- Web site’s unavailability could greatly hurt revenue and reputation;
- A need to scale up during sudden spikes of demand;
- Different features require different levels of availability and scalability;
- Keeping cost of operation low; and
- Omnichannel personalized experience (not supported out-of-the-box and difficult/slow to customize)
By moving towards microservices, cloud, CI/CD and DevOps, retailers have more control and can quickly release features that are unique to their business vision. Others will follow this trend as the need for being quicker, omnichannel and available becomes critical to their competitiveness.
While microservices can be used for almost anything, the real advantage is the ability to make quick change. For many enterprise applications (such as finance, HR etc.), the focus is usually on stability rather than agility. However, there are certain enterprise applications that have started to transform (such as driving efficiency in WMS using ML/AI/IoT) and these might be good candidates to try microservices.
However, refactoring e-Commerce platforms to microservices is a long journey. By planning ahead, following established architectural patterns and preparing the ecosystem before making major changes to a running system, the journey can be made quicker and risk-free.
With DevOps, cloud-native design and continuous integration and deployment in place, microservices can run on-premise on a private cloud or on a hybrid/public cloud. Public cloud is always a better choice for e-Commerce applications.
Decomposing a complex monolith into decoupled lightweight microservices would require an approach using a combination of 12-factor/cloud native app design, DevOps and a platform agnostic framework for cross-cutting concerns such as circuit breaker, instrumentation etc.
One of the risk mitigation strategies for large projects is to apply a strangler pattern in place of a complete cut-over. E-Commerce platforms are typically comprised of different modules such as Catalog, Cart, Promotions etc. The critical content/components need to be moved first to the cloud for availability. The home page and browse/search pages have the maximum hits. This is usually followed by product description pages.
Here is a list of domains from e-Commerce engines and a possible sequence for migrating them:
- Product Pricing
- Customer account
- Associate facing tools
While this is a typical sequence, the sequence should be driven by importance. It also helps to start small with a lean team. Also, it does not necessarily have to be a complete migration from the platform, i.e. if an organization’s needs can be fulfilled by just transforming some critical functions of the platform to microservices.
With the monolith being split into different domain services, there will be a need to build a materialized view comprised of data from different microservices. For instance, a product catalog materialized view needs to be built and updated based on product, price, inventory and promotion events. By keeping it event-driven, we avoid coupling between services and also avoid latency.
The Road Ahead
The trend from monolith e-Commerce systems towards microservices is expected to continue, especially among large retailers that feel their existing systems are inflexible. Another key driver for retailers will be their internal technical strength and their ability to onboard quality full stack developers (FSDs). Smaller retailers also are likely to test the waters by starting to build one or two microservices, maybe for a search or a browse. Irrespective of size, all of them will be careful to plan the core cart and checkout features for a move to microservices.
Kumod Ratana Jha is a Lead Architect with Wipro Limited with over 15 years of IT experience. He has worked for some of the largest retailer clients on distributed systems and emerging technologies such as cloud-native applications, microservices, domain driven design, cloud, big data and machine learning. In retail, his experience ranges from e-Commerce, fraud prevention, logistics and marketing to analytics, store applications and finance.