Internal Decoupling

Modernizing Legacy Systems One Module at a Time

A phased approach to breaking tight coupling inside Mainframes and IBM i without business disruption.

Why Internal Decoupling is Essential

Modernization becomes complex and risky when tightly coupled legacy programs depend on direct, internal calls. In mainframe and IBM i systems, one small change in a business module can ripple across the entire system, halting progress.

Internal Decoupling breaks these chains from the inside.

By isolating internal program-to-program calls and transforming them into secure, remote APIs, Internal Decoupling enables enterprises to:

  • Modernize Incrementally: Refactor one functional area (like Accounts or Customers) without touching the rest of the system.
  • Ensure Business Continuity: Maintain operations even as individual modules are refactored, rewritten, or migrated to the cloud.
  • Unlock Modern Architectures: Adopt microservices or event-driven systems while preserving the stability of legacy core logic.
  • Avoid Risk: Eliminate the need for risky "big-bang" migrations by introducing phased, low-risk modernization.

What Is the Internal Decoupling Pattern?

In many legacy applications (Mainframe, IBM i), business domains communicate through synchronous, binary internal program-to-program calls. This creates a tight coupling that prevents any part of the system from being changed independently.

The Internal Decoupling pattern uses OpenLegacy Hub to replace these internal calls with remote service calls (REST, gRPC, MQ). This allows a newly modernized module (e.g., in Java, .NET, Node.js) to communicate with programs still running on the mainframe—without requiring code freezes or invasive changes to the legacy system.

When to Use This Pattern

You must migrate or rewrite one functional area (e.g., Inventory) ahead of the rest of the monolithic application.

Long-running batch jobs depend on shared sub-routines that need to be containerized and moved to the cloud.

A new digital channel requires a microservice that must reuse existing COBOL or RPG logic.

Implementation with OpenLegacy Hub

The goal of Internal Decoupling is to replace in-program calls with remote APIs so individual modules can be refactored or rewritten. This is achieved through a structured process using the Hub Planner and Executor.

Step

Action in the Hub

Detail & Outcome

  1. Analyze & Identify

Hub Planner (Legacy Analyzer)

Scan legacy source code (COBOL, RPG, JCL) to generate the program call graph. Visually identify the tightly-coupled internal calls that cross domain boundaries.

  1. Define the Target

Hub Planner

Select the module to be modernized (e.g., Customer-Update) and define its target state (e.g., refactor to Java microservice).

  1. Generate Decoupling Bridge

Hub Integration Factory

Automatically generate two key assets: 1) A Reverse API that wraps the original legacy program. 2) A Client Stub for the new Java microservice to call the Reverse API.

  1. Implement Proxy Logic

Hub Executor

The Executor automatically implements the proxy logic on the legacy side. This logic intercepts the original internal program-to-program call and redirects it to the new remote Reverse API call.

  1. Refactor & Test

Developer IDE / CI/CD

Developers refactor the target module's logic using the generated Client Stub for external communication. Automated contract tests ensure the new API meets the legacy program's expectations.

  1. Deploy & Switch

Modernization Executor

Deploy the modern service (e.g., Kubernetes). Once confirmed stable, the Executor activates the proxy, officially routing the internal call flow through the new remote API.

Key Benefits and Risk Reduction


BenefitOpenLegacy Advantage
SpeedUp to 70% faster module migration vs. manual rewrites. Reverse APIs and data models are generated in minutes.
SafetyZero unplanned downtime during cut-over. The Executor allows for a structured roll-back by simply redirecting the proxy back to the original in-program call.
ArchitectureNo Middleware Lock-In. Direct, native connectivity (CICS, IMS, RPG) eliminates ESB overhead and reduces TCO by 45%.
Future-ProofingCloud-ready architecture—the API is immediately consumable by AI/ML and real-time analytics.