Case

bol.com - from monolith to microservice

For a major innovation project at bol.com we took part in a complex job of moving the mobile app API from a monolith to microservices architecture.

Kotlin
Springboot

Background

For a major innovation project at bol.com we were requested to participate in a complex job of moving the mobile app API from a monolith to microservices architecture.

Bol.com’s first mobile app, launched in 2014, was initially linked to the direct xml API of the web-shop’s backend. It was a quick solution which came with a few major drawbacks (e.g. modifications were burdensome and the app-team had no control of the business logic). As a result the app frequently stopped functioning whenever changes were being made to the web-shop. In addition, exponential growth of the mobile app user base, size and complexity made the need to release the app from its dependency on the web-shop truly paramount.

“The challenge was to keep the app function uninterrupted during this major shift”

Solution

In 2019 Flock. joined the customer’s team to guide and help implement the  transition. During the process, the app-backend team focussed on ensuring business logic would end up in services, and only composition and visualisation logic would go into the app API service. The main challenges here were to make sure the app function remained uninterrupted and the codebase  sustainable, while preserving fast innovation speed.

Among others, the project involved the re-introduction of forced app updates, helping customers to always get the latest features and the least amount of bugs. We made the app fully multilingual, ensuring hardly any IT intervention will be necessary whenever new languages are added. We also carried out a considerable refactoring of the app API source code to a component architecture, resulting in a codebase which reflects the organisation and easily lends itself to simultaneous development by multiple teams.

In terms of technology we used Springboot, Kotlin and reactive streaming libraries (Reactor, Kotlin coroutines).

The outcome is a highly performing, scalable, easily extensible mobile app API, displaying good feature parity with the web-shop and without excessive need for front-end / or API engineering capacity.

Andere cases

Bring the Elephant Home

Bring the Elephant Home

ING Touchpoint - unified user experience (anytime, anywhere)

ING Touchpoint - unified user experience (anytime, anywhere)

DHL – apps for internal use

DHL – apps for internal use