Anti-corruption layer of the new banking system for the largest commercial bank in Slovakia
As part of creating the new microservice-based Internal Banking System, we implemented an Anti-Corruption Layer (ACL) module for the client. As an interlayer, the module ensures the connection between the original and the new system. Thanks to that, making changes to the original system isn’t necessary. The module works with the bank client’s data, which it converts and forwards for processing to other bank systems via the integration interface.
The solution’s modules were designed to use the original system’s interface for client analysis, as well as the new data sources that will replace the old system’s unused part in the future.
Our proactive approach ensured that we could introduce new technologies that communicate with the individual system modules without having to modify all systems. We helped our client save money and resources, which they eventually used to expand our cooperation.
ERSTE Group Bank AG / Slovenská sporiteľňa
Development of a new microservice-based Internal banking system
ACL (Anti-corruption Layer)
Batch (Conversion and Consolidation Services)
Kotlin, Java, Spring Batch, Spring integration, Oracle, Mongo, Swagger, Confluence, JIRA
Project manager, Analyst, Developer, Tester
project duration (ongoing)
5 team members
from DGT factory
as part of the ACL module
as batch algorithms
68 Rest API
for communication between services and servers
Slovenská sporiteľňa is the largest Slovak commercial bank. As a member of the ERSTE Group Bank AG banking group, it plays an essential role in the field of banking. The bank has its own Internal Development Lab, which is part of the bank’s technology department. Its task is to create a new microservice-based internal banking system.
Slovenská sporiteľňa is currently undergoing a replacement of its internal banking ecosystem. The original monolith system is becoming a juggernaut that is increasingly harder to maintain and expand. In contrast, the new system’s architecture is based on microservices. That allows the client to flexibly divide the project into individual modules and assign the modules to different teams of developers.
Our task was to create an ACL module – a set of microservices that uses advanced algorithms to identify suspicious links or operations in bank accounts and clients. One of the biggest challenges was that the client wanted the new service to work with data from the original system as well as the new one. In addition to using complicated APIs, this also called for various data conversions and consolidations.
After a previous good experience with us when working on a smaller test project, the client adopted a relatively open approach to our cooperation. Thanks to that, we had the space to work on an expert solution to various key areas that our analysts considered risky based on their previous experience with other large banking systems.
As part of our cooperation with the client’s team, we discussed and proposed a solution that would better fit the current as well as future needs of the system. Due to this, we didn’t have to redesign parts of the system that had already been completed, which helped us save time on the development.
Two status meetings were held weekly, where team members reviewed the current progress. The purpose of the technical meeting with the architect and development leader was to go over the questions from all parties, fill in missing information and prevent misunderstandings. At the management meeting, we reviewed the project’s current state, its schedule, proposed modifications and fine-tuning, and tried to foresee and eliminate potential threats.
Even though the project is still ongoing, it is already clear that thanks to our proactive analytical approach, we helped save our client a part of the budget. The client used it to add batch services to our cooperation, which were not part of the initially agreed scope of work. Also beyond the planned scope, we designed and provided the client with testing. Internal testing capacities weren’t available then, and this issue was slowing down the project. We tested according to the client’s methodology and handed the outputs over to them, which sped up the entire development process.
The client greatly appreciated that we didn’t just work as simple developers, but we also proposed solutions and procedures, some of which the client ended up adopting for their further use. We brought our own added value to the project, always thinking about the issues at hand and coming up with ideas. Thanks to this, we were able to create a friendly relationship with the client, which is always a good basis for a constructive creative atmosphere. To a great extent, we operate as one team.