Our client wanted to upgrade their existing stock control system for better efficiency and extended capabilities for importing, storing, and synchronizing data between the platform and external systems.
Through the streamlined management of product stocks, while following business best practices and government regulations, the client was able to make substantial savings. Group purchases of medication allowed them to channel more funds towards providing better quality care for patients.
Process & Story
Problem
The client needed a system that would maximize savings by optimizing product purchases through better control of stocks, the application of business rules, and full compliance with government regulations. It involved importing, storing, and processing millions of supply records from multiple external systems.
Most importantly, records in the system needed to be updated in real-time. This can be increasingly challenging with the growth of big data. Because the existing solution was entirely based on SQL Server Integration Services, it had some limitations. New and more complex business rules, along with constant data growth, forced our client to reach for a new approach.
Solution
The existing solution was upgraded to one based on microservices and leveraging the cloud. The goal for the new version was to create a solution that is testable, easy to maintain, and performs well under huge loads. Because the processing flow consists of particular ‘steps’, we separated existing logic and created a microservice for each one.
Data from files is divided into chunks that are sent and processed between services. However, they can’t be processed completely independently as records are connected to logical sets. To fulfill that requirement, we developed an internal balancer that ensures messages are processed within the logical sets and with respect to given resources such as a database.
The new system is much more efficient and easier to develop and maintain. The onboarding process for new clients is also now much easier and faster.