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”
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.