The Problem

A national bank's core transaction processing system ran on a 30-year-old COBOL codebase. The system processed millions of daily transactions but was increasingly difficult to maintain — only two engineers on staff understood the code. Regulatory requirements demanded new features that were nearly impossible to implement on the legacy stack, and recruitment of COBOL developers had become untenable.

The Solution

Led the incremental migration of the transaction processing core from COBOL to Go using a strangler fig architecture. Built a gRPC API gateway that routed traffic between legacy and modern services, enabling module-by-module migration without downtime. Implemented an event-driven architecture with Kafka for transaction processing, PostgreSQL for the new data layer, and comprehensive integration testing that validated outputs against the legacy system at every stage.

Results

  • 70% reduction in infrastructure costs after full migration
  • Zero-downtime migration — no production outages during 24-month transition
  • 50+ new features shipped during migration that were impossible on COBOL
  • Recruitment pipeline opened — Go developers available vs zero COBOL candidates
  • Transaction processing latency reduced from 800ms to under 50ms

Technologies

GoPostgreSQLKafkaDockerKubernetesgRPCAWS

Interested in similar work?