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