Dutch E-Commerce Giant Wehkamp Drives Global Expansion By Modernizing Systems For “Reactive”
New Opportunities in New Markets
Over 143 million visitors per year make Wehkamp.nl the Netherlands’ most popular online department store. Established in 1952 and functioning as a subsidiary of RFS Holland Holding since 2008, the company processes more than seven million orders per year, with 100% of its revenues coming through online sales. Wehkamp is well known as an e-commerce pioneer in the Netherlands, among the first to move its business online more than 20 years ago.
The time to deploy in a new country would have taken anywhere from 6 to 9 months with the old stack. With Scala and Akka, we could probably get set up from a technical point of view with a complete eCommerce site in 4 to 6 weeks; the Lightbend platform itself could be up and running in a matter of days. That’s one-sixth of the time and considerably less complexity that we would have faced before.Jurjan WoltmanSystem Architect, Wehkamp
In Q4 2014, Wehkamp made headlines for its first-ever cross-border expansion, when it launched a new online store in Belgium in only 6 months using a brand new platform based on Lightbend Reactive Platform technologies, Scala and Akka. The company’s product inventory in Belgium today includes more than 100,000 items from various brands.
Re-Architecting a Platform for Fast Growth
In 2014, Gerhard van der Bijl (Manager Marketing Technology) and Jurjan Woltman (Architect) put together a internal IT team codenamed “Blaze”, to re-platform Wehkamp to roll out in Belgium. The team wanted to move from its current decade-old Microsoft .NET platform to a new stack that was more open, flexible and allowed for faster iteration.
The Blaze team set out to re-imagine their enterprise; their .NET platform, which had been innovative as an early online marketplace at the time in 2004, was falling behind greenfield startups using cutting edge technologies for the modern web and mobile platforms.
Though current systems were great at handling batch order processing, they needed the ability to focus more data analysis at scale. Other demands, such as the ability to integrate with different platforms, conduct multiple AB tests at the same time, rapidly roll out new features, and embark on data-driven digital marketing were among the key business drivers.
“We didn’t really take any kind of academic approach in choosing Scala and Akka,” commented van der Bijl. “We looked around to see what was happening in the tech community. For us, scalability was the main priority, and we wanted to use open source, battle-tested tooling. So although Java EE and Spring have the qualities of the latter, we were building a distributed architecture based on microservices and didn’t want to go for monoliths again.”
Woltman especially wanted the team to feel empowered by their toolset and the vision of the community behind it. The new qualities they needed, such as asynchronous & non-blocking messaging and the ability to set up a more resilient distributed architecture, let Wehkamp better support their service-oriented approach to doing business while expanding into new geographies. They wanted a platform based on the tenets laid out in the Reactive Manifesto. Key goals included:
- Developer Velocity—The Blaze team needed a platform that could handle multiple deployments per day, rather than once every two weeks on the old .NET architecture. A big part of the Wehkamp developer velocity goal was also the ability for developers to create features in parallel, which was not possible with the .NET monolith.
- Guaranteed Resilience—Wehkamp needed a scalable stack that could be rolled out to multiple countries, where if one country went down, it wouldn’t create cascading failures across other countries.
- Lightweight, distributed platform to embrace microservices—Wehkamp was increasingly moving towards a microservice-based approach that could run independently and avoid application servers and middleware. This new philosophy would allow team members to work more independently without contention between systems.
- A Cloud-Friendly Approach on the JVM—The Blaze team had narrowed its sights on the benefits of the proven JVM, and the elasticity of the cloud. Moving .NET to the cloud was not viable, and moving towards other traditional, monolithic stacks using heavy application servers was also not viable. So re-platforming demanded a new stack built for the JVM, horizontal cloud scaling and support for containers running microservices.
- Open and Pluggable—Wehkamp has steadily gained interest in leading open source frameworks (Cassandra, Mesos) and deployment models (Docker), and needed an open platform that played friendly with the most innovative “new stack” technologies.
At this time, IT services provider Xebia was contacted due to prior experience with Reactive systems based on Scala and Akka. With a partner in place, Wehkamp set out to get away from working with software that took too long to build and release, and a monolithic architecture that was difficult to evolve and scale. When the decision to expand into Belgium was confirmed and building a new platform for this marketplace was need, the opportunity was there. It was time to “Go Reactive”.
You Call That a “POC”? - New Country, New Store in Six Months...
We really needed a toolset with lots of programming power, scalability but certainly also a very small footprint. Scala and Akka provided just that.Jurjan WoltmanSystem Architect, Wehkamp
Where proofs of concept (POC) are typically rather conservative by design, Wehkamp’s “new stack” POC and shift to Reactive was in reality a complete deployment of a new, fully operational e-commerce site in a new country in less than six months. With Scala and Akka as the foundation of its new platform, Wehkamp moved that new platform from living on-premises to Amazon Web services (the company’s first departure from on-prem to the cloud), and successfully launched its Wehkamp Belgium web shop.
As Gerhard cites in part of an overall presentation about the company’s Digital Marketing vision, he cites some specific advantages that Scala and Akka have brought to Wehkamp Belgium’s arrival at a more Reactive platform:
- A More Flexible, Scalable Stack—Unlike .NET’s prescriptive approaches, Scala allows Wehkamp to choose best-of-breed open source software for specific requirements, or custom-made software, where desired. No more need to run clunky web app servers or middleware.
- From Monolith to Microservices—Using Scala for the language and Akka for concurrency, the new stack allowed Wehkamp to decouple its previous .NET stack services and write mission-critical microservices for a system that is truly responsive, resilient, elastic and message-driven.
- Clean “Message-Driven” Modeling—Wehkamp’s new stateless, message-driven approach supports linear scalability and elasticity as traffic spikes/slows, as any server can handle the work.
- Smooth Integration With Apache Cassandra for “State” Handling—Shopping carts and the checkout process introduce complex issues of “state” for e-commerce systems. Every service at Wehkamp Belgium uses Akka-Persistence to persist its internal state. This makes it easier to reason about complex flows and interactions. Some services also access Cassandra directly for read-only data such as the product catalog and its associated taxonomy.
Today Belgium, Tomorrow the World
The most impressive result of its Reactive investment (proven out in Belgium) is the speed with which the company can enter new markets and launch new sites and services—a matter of weeks, not months. Developer velocity for turning out bug fixes and new features has increased considerably: on the legacy platform, small updates were shipped every 2 weeks or so, with larger releases between 1-3 months. With Lightbend Reactive Platform, small updates can be shipped multiple times per day if needed, and larger releases can be pushed into production on a weekly basis.
“The time to deploy in a new country would have taken anywhere from 6 to 9 months with the old stack,” said Woltman. “With Scala and Akka, we could probably get set up from a technical point of view with a complete eCommerce site in 4 to 6 weeks; the Lightbend platform itself could be up and running in a matter of days. That’s one-sixth of the time and considerably less complexity that we would have faced before.”
Inspired by this story? Contact us to learn more about what Lightbend can do for your organization.