Home » Financial Services

Financial Services

  • by

Financial Services

Major Central Asian Bank

As a major private bank, our client was exploring digital transformation to support their online 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 provide strong guidance on tech stack/choices
  • An Embedded Engineer – Mentoring the bank’s software developers on Scala, reactive principles, domain driven analysis, Akka and other modern DevOps technology and Agile practices
  • Technology Stack Subject Matter Experts from our partners, Lightbend – enablement of the bank’s 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

DevOps:

  • 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

Monitoring

  • 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 and working hours, inexperienced team. Yoppworks expertise at overcoming these international challenges is proving effective.
The Results
  1. Enablement 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.