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
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, working hours, inexperienced team. Yoppworks expertise at overcoming these challenges is proving effective
The Results
- 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.
- Enablement of the offloading of the mobile banking gateway from Oracle.
- Design on the credit card statement processing.
- 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.
- Project on-going and will continue removing load from Oracle until all functionality is migrated to Reactive Architecture.