Enterprise API providing location data for a global retailer

Java / Kotlin, rxJava, Vertx
Eventing platform

Our client, a global retailer, provides over 200+ internal domain-specific services that are used to run its global business. Each service serves a particular purpose and can often require collaboration with other domain service offerings. At the core of the services network, one of service exists to provide key information relating to brick-and-mortar store locations and virtual locations worldwide, such as websites. 

Every store possesses unique features from which insight can be derived such as opening hours, geo-coordinates, addresses, formats, and also a list of in-store services.

These Location services feed various frontend and backend applications that in turn support almost 170 internal departments through a dedicated custom enterprise API, providing universal access to both data warehouses & data lakes. This enables each customer using the service to combine location data with other variables to provide business-critical value through these services.

The challenge

Our customer had created an initial version of a system that was narrow in scope and enabled basic in navigation. This had been a web based application that presented some XML data using an API-friendly method. The information had been stored individually within third-party applications instead of an internal database.

The use of the third-party software had  made it difficult to process and share data easily. This had been one of the reasons that the tech security and data management had pushed actively to industrialise the service. During the implementation phase of this project certain scalability issues had come up and it had proven near impossible to achieve the ideal solution, since everything was written in legacy  Java code and atop of mainframe infrastructure. This was the moment, our client reached out to VirtusLab.

The solution

VirtusLab (VL) first connected a new version of the solution, atop of the existing mainframe to stabilise the solution. Gradually VL rewrote the entire system to mitigate the risk of system failure or downtime.

The new enterprise API now supports essential business operations with a continuous flow of trustworthy information.

VL created a NoSQL document database to store the information in-house, and introduced a modern infrastructure which included a backup system, increased security capability, and wrote frontend applications with React. These web applications enabled users to log into the system to browse and modify the location data.

The enterprise API gained its reliability due to the change from an old Java version to Kotlin, introducing the most up-to-date tech stack into the system. Using reactive programming enabled the reduction of latency, high throughput and scalable applications and made it more scalable without affecting infrastructure budget. The language change also helped to improve stability. VirtusLab introduced an automated release pipeline infrastructure (CI/CD) to work in a cloud environment and to allow for thousands of automated tests. We ensured that everything ran smoothly and that the data was always up-to-date.

The results

VirtusLab created a stable and reliable enterprise API that handles large amounts of location data and fuels over 150 business-critical internal systems and external applications. The enterprise API ensures enough insights for employees to run business-critical processes dependent on this data type and provides built-in security for this data. Meanwhile, these processes have proven to be solid and scalable and to be able to keep up with the retailer’s strong growth.