Monolith-to-Microservices Migration for a Financial Service Provider

Velvetech supports a company specializing in debt recovery for individuals and businesses by re-architecting and modernizing its CRM platform to improve performance and scalability.
  • Project: CRM system re-architecting to alleviate the load and improve its performance
  • Duration: Ongoing
  • Technologies: .NET 8, GraphQL, AWS, Jenkins, Bitbucket, MariaDB, Postgres, Redis, Elasticsearch, Kafka, Vue.js

The client provides a set of financial services to businesses and individuals, including assistance in debt recovery and investment management.

THE CASE

Our collaboration with the client began in 2021 when they requested the extraction of a single module from their monolithic system and the migration of historical data to a microservice. This project was successfully completed after a year of dedicated effort.

Following this success, the client returned with a more ambitious plan. They realized that isolating one module wasn’t enough to alleviate the system’s load. Their new goal was to build an entirely new, microservice-based scalable CRM architecture, migrate 2.5 terabytes of historical data, and modernize their outdated PHP5 tech stack. Recognizing our expertise and the quality of our previous work, they entrusted this complex and transformative initiative to our team.

The Client’s Request

The client operates two different solutions integrated with each other — a transaction management and accounting platform, and a CRM system. They started their business more than a decade ago and have been using the platform developed during its early years by the present day.

Over time, the client’s monolithic CRM system expanded significantly. New modules were added, the number of users grew exponentially, data streams became increasingly complex, and the platform’s foundational technologies grew outdated. These changes led to serious challenges, including degraded performance, high maintenance demands, testing hurdles, and difficulties in sourcing developers skilled in legacy technologies.

Facing these obstacles, the client decided to conduct migration from monolith to microservices and began searching for a trusted partner experienced in software modernization. Velvetech’s strong track record in digital transformation projects made us the ideal choice for this initiative.

Read when It’s Time to Move on From Your Legacy Enterprise System

The Process

Monolith-to-Microservices Migration: Process

The existing monolithic system is highly complex and under heavy load due to a large user base and extensive client data. This prevents the client from retiring it immediately, requiring their developers to continue maintaining the platform.

Meanwhile, our team is leading the CRM reengineering and rewriting the code using a modern technology stack. Additionally, our DevOps engineers are responsible for fine-tuning the CI/CD pipelines to ensure seamless deployment processes within the new system.

Pre-Project Research: Detecting the Most Pressing Pain Points

When the client approached us for assistance, we began developing strategies to decompose the monolithic system and reduce its load. Given the platform’s scale, our priority was to identify and address the most critical pain points, ensuring an efficient and impactful starting point for the transformation.

After multiple discussions with the client, we concluded that the most effective approach was to begin by alleviating the system’s load. The thing is there is a huge number of processes or jobs executed within the system daily, and the most reasonable decision was to begin with them.

Read about the Differences Between Microservices and Web Services

Jobs Extraction and Scalability Improvements

First, the client provided us with the list of the cumbersome jobs that loaded the system the most. One such job was the Dump Account job which was launched daily within the monolithic infrastructure and executed for 10 hours, backuping huge datasets and transferring formed files to the storage. These actions heavily loaded the system, which entailed a severe performance downgrade.

After we extracted the job, we turned it off in the monolithic system and activated it within the new cloud infrastructure. Therefore, the load that previously was on the client’s servers was transferred to AWS, and the processes regarding backups and file loading are now being executed within the cloud environment and with its capacities. As a result, our engineers are fully responsible for the maintenance and smooth operation of these processes.

Post-Extraction Key Metrics

Following the approach used for the Dump Account job, we extracted other services and transferred them to the new environment. This migration enabled these jobs to operate independently from the monolithic system. As a result, we successfully balanced the system load and improved its performance and scalability.

Read how we conducted Stepwise App Migration for Customs Bond Service Provider

Technology Stack Renewal

The entire codebase was written with obsolete PHP5 technology lacking frameworks. This made maintenance even more challenging and complex, that’s why it was decided to conduct the technology stack upgrade.

Partially, we are rewriting the code to the latest .NET version to ensure impeccable performance of critical services. Meanwhile, the system’s existing codebase is really huge, and the client’s engineers continue maintaining the monolith, expanding it even more. This makes full rewriting an uphill battle, that’s why some pieces of PHP-based code are being ported to the new system.

This combinational approach has an unquestionable advantage for the company. Mostly because they don’t have to entirely abandon the habitual technology, and the process of knowledge transfer is smooth and stress-free for their in-house team.

Companion Mobile App Creation

Given the company’s extensive client base, enhancing user experience became their key priority. To support the newly developed system, they decided to create a companion mobile application. Leveraging our deep understanding of the project, the client entrusted us with the development of iOS and Android apps.

The Challenge

The system is extremely complex, with numerous integrations and a database exceeding 2.5 terabytes. This scale presents significant challenges in creating a dedicated testing environment due to the substantial resources required and difficulties replicating all production interactions.

Consequently, our team faces the challenge of testing directly in the production environment — a risky approach given the potential to affect real data. To mitigate this risk, our engineers take meticulous precautions, such as manually creating test accounts and users, to isolate testing from actual data and maintain system integrity.

The Outcome and Future Plans

We continue the CRM infrastructure overhaul by dismantling the monolithic system into microservices. Given the platform’s complexity and ongoing expansions, we are still less than halfway through the process. However, the results of the migration from monolith to microservices are already evident: the system load has been significantly reduced and its performance greatly improved.

The client is fully satisfied with our work and consistently brings us new initiatives. All new projects related to the system or requiring integration with the CRM are entrusted to our team, reinforcing a strong and ongoing partnership focused on innovation and sustainable growth.

LET'S TALK
How to Get Started

Our specialist will contact you to schedule a personalized consultation within one business day.

Velvetech offers complimentary consultations; after which, we will provide you with a proof of concept in just 3 days, an accurate outlook of the cost and timeline of your project and a competitive estimation, and an assembled team – ready to start your project within 7 days.

Proof of Concept in 3 Days

Proof of Concept in

3 DAYS
Start Project within 7 Days

Start Project within

7 DAYS
Apply For A Consultation Today!

    yesno