WooliesX Express Delivery Integration
WooliesX is the newly created digital arm of Woolworths Group, bringing together Digital, eCommerce, Data and Customer divisions. It was established in mid-2017 to execute the company’s digital transformation strategy. As part of this strategy, WooliesX engaged Alembic to create a delivery provider aggregation platform to support the Express Delivery Pilot (now branded Delivery Now).
To achieve the ambitious goal of delivering groceries in under an hour, the platform required deep integration into Woolworth’s core systems. There were key touchpoints across order management systems, the delivery fulfillment system, not to mention multiple API integrations to third party delivery services. Express orders needed to be managed seamlessly from placement online to allocating a courier.
Alembic worked directly with WooliesX teams to research and architect a solution that allowed complex order fulfillment. One of the goals of this project was to provide meaningful insight into how to build a maintainable, continuously deployed, documented system for WooliesX engineers to manage independently upon completion of Alembic's engagement.
The team implemented an Event Sourced architecture, as the model suited the large number of asynchronous events being processed and aggregated from many different systems. Since the application had to respond to high levels of concurrency and asynchronous events, an Elixir umbrella application was chosen allowing multiple distinct microservice applications to be deployed either as a single unit or separately. We also used Phoenix, Elixir's web framework to build the user facing dashboard application.
The first end-to-end working version of the application was created in 2 months, where we deployed into staging environments and connected with test courier APIs to gain feedback on the application. The entire solution took 6 months to become feature complete, in production and processing orders.
Alembic delivered an event sourced data architecture and dashboard for tracking, linking core systems and multiple last mile delivery providers. Alembic worked directly with WooliesX on site as well as remotely to deliver the project. We had daily stand-ups and iterations every fortnight so that we could gather feedback on the systems and the processes within which we worked. This allowed us to change and improve the way we worked throughout the project. We were lucky to work directly with senior technology and business stakeholders within this delivery structure, which provided fantastic collaboration and a great result.
The application had to respond to concurrent, asynchronous events from multiple systems and so Erlang and Elixir's concurrency and built-in robustness was a huge advantage for a project of this nature. The selection of an Event Sourced architecture ended up being precisely the right choice for a data aggregration platform.
Why We Love WooliesX
We love that WooliesX embraced functional programming, modern tools, and a technology stack that was new to their team. We also loved that we felt a part of the core team, from the technology teams through to the business stakeholders.
It was a pleasure working with them through their first deployed Elixir application, and greatly shaped how we continue to work with clients who adopt new technologies.