Delivering on a 100% online strategy
Wehkamp.nl is 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.
Wehkamp made a shift from a traditional retailer business model, based on the physical distribution of a paper catalogue, to a 100% online eCommerce company. As a digital enterprise Wehkamp is looking for technology solutions that are distinctive and stand out in digital user experience. This means technology that is scalable, responsive and resilient at all times.
Gerhard van der Bijl, Manager Full Stack Development and Online Technologies at Wehkamp, calls this strategy Digital Customer Experience: always available, always fast, and always offering the right products to the right customers.
To achieve this, Wehkamp decided to develop a new eCommerce platform in which all of these requirements are realized. The first implementation of this new platform is an online website for Belgium, which is an extension of Wehkamps area of service.
“State of the art technology is the foundation for the entire distributed architecture of our new eCommerce platform. Lightbend and Trivento have been our software development partners during this process. The combination of in-depth technical knowledge and Agile methods have resulted in a future-proof foundation.” Gerhard van der Bijl, Manager Full Stack Development and Online Technologies at Wehkamp.
The Monolith Challenge
To build out this new vision, Gerhard van der Bijl and Jurjan Woltman, Systems Architect, needed a new platform that was flexible, open, and allowed for faster iteration. Wehkamp’s current monolith simply wasn’t up for the job.
Wehkamp needed an eCommerce platform architecture with the following requirements:
- Productive— Wehkamp needed an eCommerce platform architecture that could handle multiple deployments per day, rather than once every two weeks. Another important requirement was to be able to create features in parallel, which was not possible with the existing 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.
- 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.
These requirements demand a new generation technology stack, as many existing technology paradigms for software development failed to fulfill these requirements.
A Reactive Platform Comes to the Rescue
In order to meet these requirements, the decision was made to work with components of the Lightbend Reactive Platform. The vision is for the entire platform to be based on a microservices architecture style, using Scala for the development of the functional eCommerce services and Akka for the technical implementation of the actor model. Instead of Play, the frontend is based on AngularJS.
The online shop is always up and running, with a load of 117 M+ visitors and 5M orders per year. This can be technically guaranteed by the Lightbend Reactive Platform as part of the solution.
Adapting to customer needs
The new software platform in developed in sprints of two weeks each. Every new feature is deployed to production as soon as it’s ready and tested. As a result of this agile approach, it’s possible to deploy new features continuously. This enables Wehkamp can quickly adapt to new customer needs.
During the 'Sale' time in Belgium, which happens twice a year (once in July and once in January when the number of visitors is round 100k users per hour!!) new features are deployed to production several times a day.
Lightbend's Reactive Platform is architectured for big spikes in system load (scalable). With the use of Amazon Elastic Cloud Infrastructure, the system can scale horizontally (by spinning up extra Docker containers with services) and make sure that crucial parts of the shop are always performing according expectations. This way, the consumer can always shop online and products will be delivered on time.
Massive Benefits with Microservices
Wehkamp’s online store for Belgium went live as soon as six months after the project started: www.wehkamp.com/nlbe/.
Consumers can order items quickly and easily, and the shop is integrated with existing Dutch systems wherever possible. Wehkamp used a lean start-up approach to develop and deploy the most essential parts of the online store.
- The flexible, scalable Lightbend stack allows Wehkamp to choose best-of-breed open source software for specific requirements, or custom-made software, where desired.
- Using Scala for the language and Akka for concurrency, the new stack allows Wehkamp to decouple its monolith into services and a system that is truly responsive, resilient and scalable.
- Wehkamp’s stateless, message-driven approach supports linear scalability and elasticity as traffic spikes/slows.
- Shopping carts and the checkout process introduce complex issues of “state” for eCommerce 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.
By combining the Agile approach with DevOps principles, the Wehkamp team is able to deploy new features in a very flexible way, several times a day. Wehkamp can adapt instantly to changing market needs, whereby maximum availability of the shop is guaranteed.