Homepage > Portfolio > Building a Resilient Monolithic Service: Optimizing Telecom Product Management

Building a Resilient Monolithic Service: Optimizing Telecom Product Management

Our сustomer required a stable and load-resistant monolithic service for managing customer products. The project involved developing multiple interconnected modules, optimizing cache performance, integrating VAS services, and enhancing user experience.

Customer

Our client is a leading telecommunications company that provides a wide range of services. The client specializes in offering innovative communication solutions, including mobile and broadband services, to enhance connectivity and meet the evolving needs of their customer base.

Objective

The primary objective is to develop a stable and load-resistant system for interacting with the client’s products. This involves ensuring high availability and performance under varying loads, seamless integration of various business logic modules, and reliable processing of customer-related operations. The system should be capable of handling complex calculations, eligibility rules, and inter-product relationships efficiently to provide a robust user experience.

Challenges

One of the significant challenges encountered was the access management process. Access to certain system components and data had to be routed through a specific department, which often resulted in delays.

However, the professionalism of the Azati team allowed us to address this issue promptly, significantly reducing delays and improving the overall efficiency of the development and deployment processes.

Process

The development begins with a thorough interview stage, where candidates are assessed on their technical skills and problem-solving abilities. Once selected, new hires undergo a comprehensive onboarding process designed to familiarize them with the project’s intricacies, including the codebase and essential tools, with access to detailed documentation and resources.

Daily stand-up meetings play a critical role in our workflow, providing a platform for team members to discuss their progress, share any blockers they’re facing, and outline their plans for the day. These meetings ensure clear communication and help promptly address any issues.

Task management is handled using specialized tools that facilitate assigning tasks to developers based on their expertise and the project’s immediate priorities. Each task’s status is regularly updated and tracked, allowing real-time progress monitoring during our meetings.

Our project follows the Git flow workflow, a structured branching model that helps manage code changes efficiently. Developers work on their tasks in feature branches and, upon completion, create merge requests. These requests undergo rigorous code reviews by peers, ensuring that the code adheres to the highest standards and is free of defects.

Once the code reviews are complete and the changes are approved, the code is merged into the development branch. This branch serves as the central integration point for all new features and fixes. The develop branch is then deployed to a staging environment for thorough testing. After successful testing, the changes are deployed to the production environment, ensuring that new features and fixes reach users seamlessly and reliably.

Solution

This project involves developing a monolithic service that consists of multiple interconnected modules and components. Each module is dedicated to specific business logic essential for managing and servicing customer products. These modules collectively form a comprehensive system capable of handling various complex tasks and operations. Key modules and their functionalities include:

  • Customer Balance Calculation Module: Responsible for accurately calculating customer balances in real-time. This module processes numerous transactions and updates balances based on the latest financial activities.
  • Product Eligibility Rules Module: Manages and determines the rules for product eligibility and connection. This involves assessing customer profiles, current subscriptions, and applicable promotional rules to decide product offerings.
  • Core Processing Module: Acts as the backbone of the system, ensuring smooth and efficient operation of all core functions. It handles essential tasks, system-wide operations, and the integration of various modules.
  • Product Relationship Calculation Module: Calculates and manages relationships between different products. This includes handling dependencies, bundled offers, and interactions between various customer services.

Result

To enhance the system’s functionality, we implemented a range of features and optimizations:

  • Feature Enhancements: We introduced multiple new features that provide customers with greater flexibility and ease in managing their products. These features were designed to enhance user experience and offer more control over product configurations.
  • Cache Optimization: The process of loading product offerings into the cache was significantly optimized. We achieved a 15-20% improvement in cache “warm-up” times, which is a substantial gain given the large volumes of data involved.
  • VAS Services Integration: We implemented logic for the seamless integration and activation of Value-Added Services (VAS) for customers, providing additional functionality and convenience.
  • Comprehensive Testing: A significant number of integration tests were written to cover the entire functionality of the new features. These tests ensure that all aspects of the system work correctly and reliably, providing a robust safety net for future changes and enhancements.

Technologies

 
 
 
 
 
 
 
 

Drop us a line

If you are interested in the development of a custom solution — send us the message and we'll schedule a talk about it.