Skip to content

CASE STUDY

Enabling Reliable Data Exchange Across Platforms

Web application enabling secure two-way data exchange between external platforms and consumer applications through scalable microservices architecture and real-time processing.

Hero Image

Problem Solved

The project involved developing a public web application integrated with two external applications in a pipeline that streamlines two-way data exchange between third-party systems and a mobile app used by consumers. The application would need to allow business users (owners of the third-party systems) to configure the necessary details for seamless data exchange. The challenge was to implement complex, domain-specific business logic to ensure the system functioned effectively within the legal framework.

Case Study Icon

Problem Solved

The project involved developing a public web application integrated with two external applications in a pipeline that streamlines two-way data exchange between third-party systems and a mobile app used by consumers. The application would need to allow business users (owners of the third-party systems) to configure the necessary details for seamless data exchange. The challenge was to implement complex, domain-specific business logic to ensure the system functioned effectively within the legal framework.

Problem Solving Approach

First, the user interface was redesigned to improve user experience and speed up the new user onboarding process. Simultaneously, the frontend framework was transitioned from Angular to React, and WebSockets were introduced for real-time UI updates, improving both user experience and application performance.

To manage the increased load from new bulk onboarding features, which led to a 300% rise in onboarded businesses within a year, we optimized existing architecture for maximum parallelism. This involved increasing the number of RabbitMQ queues and utilizing existing multithreading processes across multiple production instances.
In case of high demand for resources, each Production instance takes a predefined number of messages from one of the RabbitMQ queues and processes them by applying multithreading in its CPUs.

The application is a part of a microservices architecture system, and it uses features enabled by a set of shared services through GraphQL and Kafka Integration. While it has its independent codebase and release cycles, there are dependencies on several other services developed by different teams, using different technologies (software frameworks, types of databases, etc.).

Case Study Icon

Problem Solving Approach

First, the user interface was redesigned to improve user experience and speed up the new user onboarding process. Simultaneously, the frontend framework was transitioned from Angular to React, and WebSockets were introduced for real-time UI updates, improving both user experience and application performance.

To manage the increased load from new bulk onboarding features, which led to a 300% rise in onboarded businesses within a year, we optimized existing architecture for maximum parallelism. This involved increasing the number of RabbitMQ queues and utilizing existing multithreading processes across multiple production instances.
In case of high demand for resources, each Production instance takes a predefined number of messages from one of the RabbitMQ queues and processes them by applying multithreading in its CPUs.

The application is a part of a microservices architecture system, and it uses features enabled by a set of shared services through GraphQL and Kafka Integration. While it has its independent codebase and release cycles, there are dependencies on several other services developed by different teams, using different technologies (software frameworks, types of databases, etc.).

Outcome

The application is a part of a microservices architecture system, where different services have their own business logic, codebase and independent release cycle. They are developed by multiple different teams and even use different technologies (software frameworks, types of databases, etc.). The common features are available through a set of shared services, via GraphQL and Kafka Integration.

Icon
true300

Increase in application users (businesses) in one year

false

Sped up the onboarding process of new users

false

Separation of codebase when moving to a microservice architecture led to increased efficiency in software features delivery process.

true74

Lorem ipsum dolor sit amet consectetur. Accumsan eget enim ac pharetra vitae amet sed in.. Tempor id rhoncus vitae sed quisque enim.. Egestas morbi ipsum etiam feugiat. At non a non enim gravida proin eget dui tellus.

Outcome

The application is a part of a microservices architecture system, where different services have their own business logic, codebase and independent release cycle. They are developed by multiple different teams and even use different technologies (software frameworks, types of databases, etc.). The common features are available through a set of shared services, via GraphQL and Kafka Integration.

300%

Increase in application users (businesses) in one year

Sped up the onboarding process of new users

Separation of codebase when moving to a microservice architecture led to increased efficiency in software features delivery process.

Key Features Implemented

Case Study Icon

Real-time updates on UI

Bulk onboarding of new users

UAdded support for onboarding different types of (business) users

Key Features Implemented

Real-time updates on UI

Bulk onboarding of new users

UAdded support for onboarding different types of (business) users

Technologies

Case Study Icon

Development

Technologies

Development

Angular
Angular
React
React
Websockets
Websockets
Java
Java
Play
Play
JavaScript
JavaScript
Webdriver.io
Webdriver.io
S3
S3
GraphQL
GraphQL
Kafka
Kafka
RabbitMQ
RabbitMQ
Jasmine
Jasmine
Docker
Docker
Elasticsearch
Elasticsearch
Cassandra
Cassandra

Project Timeline and Team Structure

The project has been ongoing since 2018. The team size is adjusted as needed, ranging from 8 to 15 members, including Software Engineers, QA Engineers, DevOps Engineers, a UX/UI Designer, a Product Owner/Manager, and a Scrum Master. The team continues to deliver Software Development and Product Design services.

Case Study Icon
0%

2018

Start

25%

2020

Microservices architecture

100%

2026

Ongoing

Position Icon

Product Owner

22518
Position Icon

Software Engineers

22519
Position Icon

QA Engineers

22516
Position Icon

DevOps Engineers

22517
Position Icon

UX/UI Designers

22520
Position Icon

Scrum Master

22521

Project Timeline and Team Structure

The project has been ongoing since 2018. The team size is adjusted as needed, ranging from 8 to 15 members, including Software Engineers, QA Engineers, DevOps Engineers, a UX/UI Designer, a Product Owner/Manager, and a Scrum Master. The team continues to deliver Software Development and Product Design services.

Start
2018
Microservices architecture
2020
Ongoing
2026
Position Icon

Product Owner

Position Icon

Software Engineers

Position Icon

QA Engineers

Position Icon

DevOps Engineers

Position Icon

UX/UI Designers

Position Icon

Scrum Master

Methodology

The development process followed an agile Scrum framework, adjusted to specific project needs. This included coordinating software feature releases with necessary changes in integrated applications, sometimes requiring synchronized production releases. Complex features were designed and developed over extended periods, with production deployments aligned to the client’s timeline. Meanwhile, minor features and enhancements were delivered regularly at the end of each sprint. 

Processes had to be made even more flexible, while keeping the benefits of Scrum. More on this is explained in the blog How to manage two development tracks using Scrum.

Case Study Icon

Methodology

The development process followed an agile Scrum framework, adjusted to specific project needs. This included coordinating software feature releases with necessary changes in integrated applications, sometimes requiring synchronized production releases. Complex features were designed and developed over extended periods, with production deployments aligned to the client’s timeline. Meanwhile, minor features and enhancements were delivered regularly at the end of each sprint. 

Processes had to be made even more flexible, while keeping the benefits of Scrum. More on this is explained in the blog How to manage two development tracks using Scrum.

Related case studies

Gain hands-on insights from our team's expertise.

Data Migration and New Service Development

Replaced a legacy application by migrating core features into a centralized service, improving access and system flexibility.

NDA

DevOps

Product Design

QA

Software Development

Insurance Documentation Management Platform

Unified platform for structured documentation, task tracking, and process visibility that improved operational efficiency, reduced compliance risks, and strengthened cross-team collaboration.

Insurance

DevOps

MVP Design

Product Design

QA

Software Development

Ready to Achieve More?

We’ll help you reach your goals quickly with an easy and straightforward process to kick off our collaboration. Here’s what happens next.

STEP 1

Discovery Call

Let’s chat to understand your company, project needs, and answer any questions along the way.

STEP 2

Free Consultation

Work closely with our experts to explore the right solutions for your business.

STEP 3

Collaboration Proposal

We'll recommend the best strategy for your goals, ensuring you get the most from our expertise.

STEP 4

30-Day Cancellation
Policy Contract

Spoiler: It’s Never Been Used

Enjoy peace of mind while we deliver excellence from day one—our track record speaks for itself.

Services you're interested in (Optional)