In today's world, businesses rely heavily on technology to streamline operations and enhance their customer experience. However, many organizations still have legacy systems in place, which can be a bottleneck to innovation and progress. In this blog post, we'll discuss how Edstem helped a large bank modernize their mainframe systems for Fraud detection using microservices.
The bank was using traditional IBM mainframes and apps written in COBOL for their pipeline of Fraud detection. They use a product called Falcon from Vendor FICO for detecting Fraudulent transactions in real time.
The Challenge: Decoding Mainframe Apps and A Tight Deadline for Delivering the POC
The project had a predetermined timeline of three months, with the aim of developing a Proof Of Concept (POC) for replacing the bank's mainframe with a modern microservices architecture.
Edstem's responsibility was to provide two deliverables:
- A full solution design and its architecture.
- A POC of the design, showcasing an end-to-end workflow using a selected type of transaction.
However, there were several delays in getting access, and being on-boarded to various client systems. This squeezed the time available for development down to one month after we got the necessary details consolidated from technical architects from the client's side. The strict security policies of the bank also posed challenges in getting required tools and setup ready.
The mainframe apps we aimed to replace were developed over several years and it was a challenge to study the system with limited technical documentation available.
Despite these restrictions, the developers at Edstem were able to deliver a full solution architecture and a working POC with all the agreed components on time, even after scaling further obstacles in mounting deployment accesses and pipelines created for each service.
The Solution: Modernizing Mainframe Systems with Microservices
To modernize the bank's mainframe systems, Edstem proposed a scalable solution design that replaces the mainframe with modern microservices that are cloud-ready. The solution design used Java Springboot-based microservices and message queues to talk between them, which was presented in person to the bank's panel with people from technical and business teams.
Initially, the design was based on the Choreography pattern, which was well-received, but the bank needed a more coupled and synchronous solution. Thus, the design was revised with an Orchestrator pattern, where the general design remained the same, but an orchestrator manages the workflow with the microservices talking to each other via REST API calls.
Edstem presented two versions of the same solution with the different patterns, with good reception of both from the client's technical architects. It was then decided that we go ahead with the orchestrator based approach considering the timelines and the expected synchronous behavior of the system.
The POC End-to-End Flow
The POC aimed to demonstrate a single type of transaction with an end-to-end flow. The flow includes connecting to the existing input message queues and reading fixed-length messages from them, parsing the fixed-length message to a Java POJO class, enriching the input data with much more information and transforming it to Falcon's data structure.
Here, some mock enrichments were made as the data store needed to lookup for values were too big for the POC scope. The POC then connected to the Falcon scoring server via new REST endpoints and passed the enriched object, where the throughput of incoming messages was throttled to prevent breach of the 300 TPS transaction limit.
In case the Falcon scoring server is down or unavailable, or if there is an error in the REST call, the incoming transactions are stored in a Postgres Database to retry later. Finally, Falcon responds with a JSON object that was processed to extract the decision code based on the decision (Approve, Decline, or Quarantine), and the final output was a fixed-length message that was constructed and then wrote to an output message queue.
The Final Outcome: Successful Delivery of the POC
Despite all the challenges, Edstem was able to deliver the solution architecture and a working POC with the agreed workflow and all features on time, which was very well-received by the client.
In conclusion, modernizing legacy systems with microservices can help businesses improve their efficiency, scalability, and customer experience. However, it requires careful planning, a scalable solution design, and expertise in developing microservices to deliver a successful project.