Back to Blog
February 11, 20268 min readvisual extraction solves

How Visual Extraction Solves the Unknown Unknowns of Legacy Banking Software

R
Replay Team
Developer Advocates

The $3.6 trillion technical debt bubble is not a theoretical risk; for the average Tier-1 bank, it is a daily operational tax. When a legacy core banking system has been in production for 30 years, the "source of truth" is no longer the documentation—which 67% of legacy systems lack entirely—nor is it the original source code, which has likely been patched by five generations of developers. The only remaining source of truth is the runtime behavior: how the system actually responds to a user.

TL;DR: Visual extraction solves the "unknown unknowns" of legacy banking by recording real user workflows to generate documented React components and API contracts, reducing modernization timelines from 18 months to mere weeks.

The Archaeology Problem in Financial Services#

Most banking modernization projects begin with "Software Archaeology." Architects spend months digging through COBOL, Java 4, or stored procedures, trying to map out what a specific "Loan Approval" screen actually does. The risk isn't just in the complexity; it's in the edge cases. A hidden validation rule that only triggers for specific ZIP codes or a legacy interest calculation that rounds to the fifth decimal place can derail a multi-million dollar rewrite.

This is why 70% of legacy rewrites fail or significantly exceed their timelines. The traditional "Big Bang" approach relies on human interpretation of old code, which is prone to error and omission.

ApproachDiscovery PhaseImplementationRisk ProfileTotal Timeline
Big Bang Rewrite6-9 months12-18 monthsHigh (70% fail)18-24+ months
Strangler Fig3-4 months9-12 monthsMedium12-16 months
Visual Extraction (Replay)DaysWeeksLow2-8 weeks

How Visual Extraction Solves the Discovery Gap#

Visual extraction flips the modernization script. Instead of reading dead code, we record living systems. By capturing the Document Object Model (DOM) mutations, network requests, and state changes of a legacy application in real-time, we can reconstruct the application's intent with 100% accuracy.

When we say visual extraction solves the unknown unknowns, we mean it identifies the hidden business logic that developers forgot existed. For example, if a legacy banking terminal performs a specific sequence of three API calls to "thaw" a frozen account, Replay captures that sequence, the data payloads, and the UI state changes associated with it.

From Screen Recording to Production-Ready React#

Replay doesn't just "record a video." It deconstructs the UI into a structured library of components. If you record a teller processing a wire transfer, Replay identifies the input fields, the validation patterns, and the submission logic. It then outputs a clean, modular React component that mirrors that behavior.

typescript
// Example: Generated React Component from a Legacy Wire Transfer Screen // Extracted via Replay AI Automation Suite import React, { useState, useEffect } from 'react'; import { Button, Input, Alert } from '@/components/ui/design-system'; import { validateSwiftCode, submitTransfer } from '@/api/wire-transfer-service'; export const WireTransferForm = ({ accountId }: { accountId: string }) => { const [amount, setAmount] = useState<number>(0); const [swiftCode, setSwiftCode] = useState<string>(''); const [isProcessing, setIsProcessing] = useState(false); // Logic preserved from legacy runtime behavior: // Legacy system requires 2-factor validation before enabling 'Submit' const isValid = amount > 0 && validateSwiftCode(swiftCode); const handleTransfer = async () => { setIsProcessing(true); try { await submitTransfer({ accountId, amount, swiftCode }); // Success state captured from legacy workflow } catch (err) { console.error("Transfer failed - legacy error code mapping applied", err); } finally { setIsProcessing(false); } }; return ( <div className="p-6 border rounded-lg shadow-sm"> <h2 className="text-xl font-bold mb-4">Domestic/International Transfer</h2> <Input label="Amount" type="number" onChange={(e) => setAmount(Number(e.target.value))} /> <Input label="SWIFT/BIC Code" onChange={(e) => setSwiftCode(e.target.value)} /> <Button disabled={!isValid || isProcessing} onClick={handleTransfer} > {isProcessing ? 'Processing...' : 'Execute Transfer'} </Button> </div> ); };

💰 ROI Insight: Manual reverse engineering and component creation typically take 40 hours per screen in an enterprise environment. With Replay, this is reduced to 4 hours per screen—a 90% reduction in manual labor costs.

Mapping the "Unknown Unknowns": API Contracts and E2E Tests#

The most dangerous part of banking software isn't the UI; it's the invisible orchestration between the front-end and the mainframe. Often, the documentation for these internal APIs has been lost for decades.

Visual extraction solves this by acting as a transparent proxy. As a user navigates the legacy app, Replay's AI Automation Suite monitors the network traffic to generate:

  1. OpenAPI/Swagger Specs: Automatically documented contracts for undocumented legacy endpoints.
  2. E2E Test Suites: Playwright or Cypress tests that replicate the exact user path recorded, ensuring the new system matches the old system's behavior.
  3. Technical Debt Audit: Identification of redundant API calls or "chatty" front-end patterns that can be optimized during the migration.

⚠️ Warning: Never attempt a legacy migration without a baseline E2E test suite. If you don't know how the current system fails, you cannot guarantee the new one succeeds.

The Replay Workflow: A 3-Step Modernization Blueprint#

For Enterprise Architects in regulated industries like Financial Services or Healthcare, the path from "Black Box" to "Documented Codebase" follows a rigorous three-step process using the Replay platform.

Step 1: Visual Capture and Recording#

Subject Matter Experts (SMEs) or QA testers perform standard business workflows—opening a checking account, processing a claim, or updating a customer record—while Replay records the session. This isn't just a screen capture; it's a deep-packet inspection of the application's state.

Step 2: Component Extraction and Library Mapping#

Replay's Blueprints editor analyzes the recording. It identifies recurring UI patterns (buttons, inputs, modals) and maps them to your modern Design System. If you don't have a design system yet, Replay's Library feature creates one for you based on the legacy app's core elements, but modernized for React.

Step 3: Code Generation and Validation#

The AI Automation Suite generates the React code, TypeScript interfaces, and API glue code. Because the generation is based on observed behavior, it includes the "weird" logic that a developer writing from scratch would miss.

typescript
// Generated API Contract - Solving the "Unknown" Backend Logic // This contract was inferred by Replay from 50+ observed transactions export interface LegacyBankingPayload { trnx_id: string; // Inferred: UUID format amt_cents: number; // Inferred: Legacy system uses cents, not decimals auth_token: string; // Inferred: Passed in custom header X-LEGACY-AUTH timestamp: string; // Inferred: ISO-8601 } /** * @description Automatically generated E2E Test ensuring parity * with legacy 'Account Thaw' workflow. */ test('Account Thaw Parity Test', async ({ page }) => { await page.goto('/legacy/account-management'); await page.click('#thaw-button'); // Replay observed that the legacy system waits for a specific // background process before showing the success toast. await expect(page.locator('.status-toast')).toContainText('Success'); });

Security and Compliance: Built for Regulated Environments#

In banking and government, "Cloud-only" is often a non-starter. Replay is built with a security-first architecture.

  • SOC2 & HIPAA Ready: Data handling practices meet the highest standards for sensitive financial and medical data.
  • On-Premise Availability: Run the entire extraction engine within your own VPC or air-gapped environment.
  • PII Masking: Automatically redact sensitive customer data (SSNs, Account Numbers) during the recording process so it never hits the modernization environment.

📝 Note: Visual extraction does not require access to the original source code repository. It works by observing the compiled output in the browser or terminal emulator, making it the perfect tool for vendor-locked systems where the source code is unavailable.

Why "Understanding" Beats "Rewriting"#

The future of enterprise architecture isn't about hiring 500 developers to spend two years rewriting a monolith. It’s about leveraging AI to understand what you already have. The $3.6 trillion in technical debt exists because we've treated legacy systems as disposable rather than foundational.

By using Replay, you aren't just building a new front-end; you are finally documenting the business logic that keeps the bank running. You are turning a black box into a transparent, documented, and maintainable asset.

Frequently Asked Questions#

How does visual extraction handle complex business logic?#

Visual extraction solves the logic gap by observing the inputs and outputs of the legacy system. While it cannot see the internal COBOL logic on the mainframe, it captures the exact data the UI sends and receives. Replay then generates the "glue code" required to replicate that interaction in a modern React environment.

Can Replay work with older technologies like Silverlight or Flash?#

Yes. Replay’s engine is designed to hook into the rendering layer. Whether it's an old ASP.NET WebForms app, a Java Applet, or a modern Angular 1.x monolith, if it renders in a browser or an emulator, Replay can extract the components and flows.

What is the average time savings for a typical enterprise screen?#

On average, our partners see a 70% time saving. A screen that takes a senior developer 40 hours to manually audit, document, and recreate in React can be processed by Replay in approximately 4 hours, including the generation of E2E tests and API contracts.

How does this integrate with our existing CI/CD pipeline?#

The code generated by Replay is standard TypeScript/React. It can be pushed directly to your Git repository (GitHub, GitLab, Bitbucket) and integrated into your existing deployment workflows. Replay also generates Playwright/Cypress tests that can be run in your CI pipeline to ensure zero regression.


Ready to modernize without rewriting? Book a pilot with Replay - see your legacy screen extracted live during the call.

Ready to try Replay?

Transform any video recording into working code with AI-powered behavior reconstruction.

Launch Replay Free