Articles

When Real-Time Payments Meet Thirty-Year-Old Code

By Claus Villumsen
26 May, 2026
Share this article
Somewhere right now, a batch job is running. It started at 2 a.m., like it has every night for twenty-three years. It will finish around 4:47 a.m., give or take. And when it does, a bank's customers will finally see the money they were promised "instantly" twelve hours ago. This is the reality of AI-powered legacy code modernization in financial services: you cannot fix what runs at night with tools that only work during the day.
The instant payments revolution is here. Regulators are mandating it. Customers expect it. Fintechs are building entire businesses on it. And yet, the infrastructure underneath most banks—the actual code that moves the actual money—was written before the iPhone existed. Before cloud computing. Before anyone imagined that a payment would need to clear in seconds rather than days.
When was the last time you traced a single transaction through your entire stack—not the happy path in the documentation, but the actual path it takes through every system, queue, and batch process that touches it?
The Architecture That Time Forgot
Most core banking systems were designed in an era when overnight processing was considered fast. They were built for batch, not for real-time, and that assumption is baked into every layer of the architecture. The database schemas assume you can lock tables for hours. The integration patterns assume downstream systems will catch up eventually. The error handling assumes a human will review exceptions in the morning.
None of that works when a payment needs to clear in ten seconds. Not ten minutes. Not ten hours. Ten seconds. The FedNow service in the United States, the UK's Faster Payments, the EU's instant credit transfer scheme—they all demand sub-minute settlement. And they are not suggestions. They are mandates with deadlines.
The problem is not that banks do not understand this. They understand it perfectly. The problem is that understanding the requirement and being able to meet it are two different things entirely. You cannot simply "turn on" real-time processing in a system that was architected around the assumption that real-time processing would never be needed. The constraints are not in the configuration files. They are in the code itself. They are in the data models. They are in the assumptions that every programmer who touched the system for three decades simply took for granted.
As Martin Fowler has written extensively, replacing legacy systems is not about finding the right technology. It is about understanding the behavior that the old system encodes—behavior that is often undocumented, frequently surprising, and always more complex than anyone remembers.
Why Instant Payments Break Everything
Here is what happens when you try to push real-time transactions through a batch-oriented system. The transaction arrives. It hits the first service, which writes it to a queue. That queue is processed every fifteen minutes. Already, you have failed the ten-second requirement. But it gets worse.
The downstream systems were never designed to handle the volume that real-time implies. Batch processing has a convenient property: it smooths out demand. Instead of handling a thousand transactions per second at peak, you handle a million transactions once, at 3 a.m., when nobody is watching. Your infrastructure was sized for that pattern. Your database connections, your thread pools, your memory allocation—all of it assumes bursty, overnight workloads, not sustained, around-the-clock throughput.
When you flip the switch to real-time, you do not just change the timing. You change the physics. Suddenly, every microsecond matters. Suddenly, that database query that was "fine" when it ran once per batch is a catastrophic bottleneck when it runs a thousand times per second. Suddenly, the integration that retries three times with exponential backoff is adding thirty seconds of latency to every failed transaction.
Banks that have attempted this transition without modernizing their core systems report the same pattern: initial success, growing latency, cascading failures, emergency rollback. The system was not broken. It was working exactly as designed. It was simply designed for a different world.
The Hidden Cost of Workarounds
What do organizations do when they cannot modernize fast enough? They build workarounds. A new real-time layer that sits in front of the legacy system. A caching tier that pretends the old database is faster than it is. A message broker that absorbs the spikes and drip-feeds them to the backend at a pace it can handle.
These workarounds work. For a while. But every workaround adds complexity, and complexity has a compound interest rate that will bankrupt you eventually.
Consider what happens when something goes wrong. A transaction fails in the real-time layer. Where is the authoritative record? Is it in the cache, the queue, the legacy database, or some combination of all three? Which system do you trust? Which system does the customer trust? When the regulator asks for an audit trail, which system do you point them to?
The ThoughtWorks Technology Radar has consistently flagged this pattern as a significant risk: the "strangler fig" approach to modernization only works if you actually strangle the old system. If you simply wrap it in layers of abstraction and call it modern, you have not reduced risk. You have multiplied it. You now have two systems to maintain, two systems to secure, two systems to explain to auditors, and a translation layer between them that nobody fully understands.
How many layers of abstraction sit between your customer-facing interfaces and your actual systems of record? Could anyone on your team draw that diagram from memory—and would two people draw it the same way?
What SSP Group's Modernization Reveals
The recent announcement that LTM will drive AI-powered modernization of IT infrastructure for SSP Group—a UK-based hospitality and food service company—offers an instructive example of how organizations are approaching this challenge. While SSP Group is not a bank, the patterns are identical. Large enterprises with decades of accumulated technical debt, mission-critical systems that cannot go down, and a competitive environment that demands faster, more responsive technology.
The key insight from these modernization efforts is that the technology is not the hard part. The hard part is understanding what the old system actually does.
Legacy systems accumulate behavior over time like sediment. A special case added in 2003 to handle a regulatory requirement that no longer exists. A performance optimization from 2011 that now causes race conditions under high load. A data transformation that was documented nowhere but has been silently fixing upstream errors for fifteen years.
AI-assisted analysis can help surface these patterns faster than manual code review. It can identify dead code, trace execution paths, and flag inconsistencies between documentation and implementation. But it cannot tell you why a particular piece of logic exists. That requires institutional knowledge, and institutional knowledge has a half-life. The people who wrote the original code retired. The people who understood their intentions left for other companies. The documentation, if it ever existed, describes the system as it was designed, not as it evolved.
Where AI Actually Helps—and Where It Cannot
Let us be honest about what AI can and cannot do in legacy modernization. The hype cycle has created unrealistic expectations. Some vendors imply that you can point an AI at a thirty-year-old COBOL codebase and it will produce clean, modern, cloud-native microservices. This is not true. It is not close to true. Anyone who tells you otherwise is selling something.
What AI does well is accelerate the discovery phase—the work of understanding what exists before deciding what to build. Large language models can parse code in dozens of languages, identify patterns, and generate summaries that would take human analysts weeks to produce. They can flag anomalies, suggest refactoring opportunities, and create documentation where none existed. This is genuinely valuable. It can reduce the time to understand a legacy codebase by fifty percent or more.
What AI does not do well is make judgment calls. Should this business rule be preserved or discarded? Is this edge case still relevant? Does this integration still serve a business purpose, or is it a vestige of a partnership that ended a decade ago? These questions require context that no AI possesses. They require understanding of the business, the regulatory environment, the competitive landscape, and the organization's strategic direction.
The most effective modernization efforts use AI as an accelerant, not a replacement. The AI handles the tedious, voluminous work of code analysis and pattern recognition. The humans handle the strategic decisions about what to keep, what to change, and what to discard. As the Stack Overflow blog has noted, the best AI tools augment human expertise rather than attempting to replace it. The danger is in assuming the AI understands more than it does—and making irreversible architectural decisions based on that assumption.
The trajectory is clear: AI capabilities will improve. The analysis will become more sophisticated. The suggestions will become more accurate. But the fundamental challenge of legacy modernization is not technical. It is organizational. It is about making hard choices, accepting short-term pain for long-term gain, and maintaining the discipline to see a multi-year transformation through to completion. No AI can do that for you.
The Path Forward Is Not Optional
Here is the uncomfortable truth that many executives do not want to hear: you cannot defer this decision indefinitely. The instant payments mandate is not going away. The competitive pressure from digital-native competitors is not going away. The talent pool of developers who understand COBOL and JCL is not expanding—it is shrinking, rapidly, as that generation retires.
Every year you delay modernization, the cost increases—not linearly, but exponentially. The workarounds become more entrenched. The institutional knowledge decays further. The gap between what your systems can do and what the market demands grows wider.
The organizations that will thrive in the next decade are not the ones with the most advanced technology. They are the ones that understand their existing systems deeply enough to evolve them strategically. They are the ones that have invested in discovery before transformation, that have mapped their dependencies before cutting them, that have built the organizational muscle to make hard technical decisions and stick with them.
This is not a project. It is not a one-time initiative. It is a permanent capability that modern enterprises must develop. The ability to understand legacy systems, evolve them safely, and modernize them incrementally—without betting the company on a big-bang rewrite that will fail—is the core competency of the next decade.
If you started a true modernization effort today—not a workaround, not a wrapper, but a genuine transformation of your core systems—what would you need to know that you do not know now? And who in your organization could answer that question?
Kodebaze helps enterprises understand their legacy codebases before making modernization decisions—using AI-powered analysis to surface what the documentation never captured. See how it works →
Related articles

AI

AI

AI
AI + Human
AI + Human software Solution
© 2026 Kodebaze. All Rights Reserved.
© 2026 Kodebaze. All Rights Reserved.