Modernizing architecture of a core banking solution - Infopulse

Decomposition of the Batch Grid system of a Core Banking Solution

IT Services Сompany

Location:

Nordics

Industry:

Banking & Finance

Employees:

20,000+

About the Customer:

One of the largest IT services companies and a multinational supplier of computer software, IT services, and innovative solutions to enterprise customers across the EU and worldwide.

Business Challenge

Our reliable client, a large IT services company, reached Infopulse to assist with the modernization of their customer’s core banking solution. The financial services company wanted to enhance the effectiveness, maintainability, and security of their Batch Grid system. As the project was large-scale and long-term, different internal teams were involved in the solution development. The system itself lacked consistency and generated a range of dependencies between other systems responsible for regular batch processes (e.g., End of Day).

As a result, the customer had to deal with the following challenges:

  • An increase in maintenance issues of the core banking solution.
  • Releases of new features were complicated due to multiple development branches that had to be merged and tested individually before each release.
  • The solution structure was prone to defects, with over ten systems responsible for the Core Batch Grid (CBG) system code. The tight coupling in the system made it difficult to handle versioning and feature toggling.
Decomposition of the Batch Grid system of a Core Banking Solution - Case Image

Solution 

Upon conducting the detailed analysis, Infopulse experts came up with solutions that could address the discovered system issues and validated their effectiveness at the PoC stage:

  • Iterative splitting would allow a sequential separation of systems, thus safeguarding from system failures.
  • Integration of standalone system tests into the build pipeline would improve the work quality and speed up a feedback loop for all development teams.
  • A transactional framework would help separate business logic from a technology platform.
  • An enhanced development workflow would enable the distribution of duties between development teams, thus increasing their autonomy, reducing conflicts, and improving focus on functionality.
  • A performance validation test suite would allow for faster and more accurate performance testing.
  • The introduction of common architecture development standards helps decrease and prevent technical debt.

When we implemented and deployed all the above solutions to production, we turned a tightly coupled monolith application into a platform. This crucial change resulted in the following:

  • Each subsystem codebase was reduced to business logic that related only to the subsystem data.
  • Subsystems were placed into separate Git repositories.
  • By introducing APIs integration, we implemented contracts between subsystems, allowing developers to change integrations via consensus, provided by pull request functionality.
  • Shifting to the weak code ownership allowed individual teams to work independently on end-to-end functionality and control their workflow.

Technologies

  • Java 8/11 – a coding language
  • Hazelcast – an in-memory data grid
  • Spring Framework – a Java application platform
  • Flyway – a database migration tool
  • Oracle Database – a persistence storage
  • jOOQ – a light database-mapping library and typesafe SQL querying in Java
  • Narayana – a transactional manager for JTA
  • IBM MQ – a Java message service
  • ArchUnit, JUnit, Mockito, Cucumber, DbUnit – automated testing tools
  • Jenkins, Docker, Maven, Python, Git (Bitbucket), Linux – development and CI deployment tools
  • Prometheus – a monitoring tool
  • Logstash, Logback – logging tools

Technologies

Oracle DBs logo
Oracle DBs
Python logo
Python
Spring logo
Spring
Logback logo
Logback
Maven logo
Maven
Bitbucket logo
Bitbucket
Prometheus logo
Prometheus
archunit-logo-infopulse
Archunit
dbunit-logo
Dbunit
docker-logo
Docker
flyway-logo
Flyway
hazelcast-logo
Hazelcast
ibm-mq-logo
IBM-MQ
Jooq logo
Jooq
Logstash Logo
Logstash
Mockito Logo
Mockito
Narayana Logo
Narayana
Cucumber Logo
Cucumber

Business Value

  • Business domain functionality was distributed into subsystems, thus providing independent maintenance.
  • Modifications in one business logic component will not affect others, which lowers the number of defects, makes them easier to detect, and greatly improves the defect resolution time.
  • The code duplicates were eliminated by introducing the abstraction layer between a business logic layer and a persistence layer, thus simplifying the product development process.
  • Faster time to market and higher quality of new products.
  • Due to the distribution of systems across separate repositories, the build time was significantly reduced, enabling faster feedback on changes and decreased costs on changes implementation.
  • Common development standards established a unified framework for software developers. The overall efficiency of the development team greatly improved.
  • The weak code ownership allows teams to decide how to implement the framework on their level, enabling technologies and process improvements.
  • An employee engagement level increased as per development managers.

We have a solution to your needs. Just send us a message, and our experts will follow up with you asap.

Please specify your request

Thank you!

We have received your request and will contact you back soon.