Home » Financial Services

Financial Services

  • by

Financial Services

Major Central Asian bank modernizes entire core banking system

As a major private bank, our client was exploring digital transformation to support their on-line presence. By engaging YoppWorks, they learned about the numerous benefits of Reactive Architecture, which resulted in a contract to modernize their entire core banking system.

The Challenge

Their core system performs all ledger operations between accounts and, as such, was crucial to day-to-day operation of the business. Implemented almost entirely in Oracle PLSQL (Procedural Language extensions to SQL), the Oracle server was becoming a performance bottleneck. It was also proving expensive to scale up the solution for only moderate throughput gains. Additionally, the system integrates with many external systems through gateways and adaptors in a variety of technologies.  And for security reasons, all core infrastructure was required to run on-premise.

Because of the critical importance of the core system, any new system would be required to interoperate with the existing one for a period of time.

The Solution

A team was assembled to PLAN and BUILD the new system:

A Solution Architect – Defined the architecture and provided authoritative guidance on technology stack choices.

An Embedded Engineer – Mentored the bank’s software developed on Scala, Reactive Architecture principles, Domain Driven Analysis, Akka and other modern DevOps technology and Agile practices. 

Subject Matter Experts from our partner, Lightbend – Provided enablement of the software developers through Lightbend Academy resources.

The solution process followed basic scrum methodology and implemented Reactive Microservices Architecture (RMS) for replacing the legacy system:

  • Reactive adaptors were used for any integration points (with RMS <-> Kafka topic)
  • Adaptor services and topics for migration to/from the legacy Oracle system
  • RMS uses CQRS based design, implemented on the native Akka stack:

  • Persistence/Persistent entities
  • Cluster
  • Projections

Tech Stack:

  • Cassandra fro event storage
  • Kafka for message bus
  • gRPC/protobuf for transport and service API


  • K8s for hosting all RMS components
  • K8s cluster deployed with Ansible
  • Kafka and Cassandra clusters managed manually outside of K8s via Ansible

  • Storage options: include Ceph/Rook, portworx
  • Vault from HaskiCorp for secure secrets


  • Lightbend Telemetry for application and business metrics
  • ELK stack for log aggregation

Some of the challenges faced include:

  • Proving our technical solution in terms of inbound and outbound migration and parallel operation with existing systems
  • Language barrier, time zones, working hours, inexperienced team. Yoppworks expertise at overcoming these challenges is proving effective

The Results

  1. Enablement of the client’s development staff to design and build the General Ledger, transaction and exchange rate bounded contexts and their bi-directional data migration paths.
  2. Enablement of the offloading of the mobile banking gateway from Oracle.
  3. Design on the credit card statement processing.
  4. Enabled their development team to build infrastructure-as-code processes for deploying infrastructure to scalable environments. Examples include Kubernetes, Istio, ElasticStack, and all bounded context microservices. Guided the team on building a robust CI/CD pipeline for rolling out IDS infrastructure and applications.
  5. Project on-going and will continue removing load from Oracle until all functionality is migrated to Reactive Architecture.