delivered for clients · names withheldmodernization Applications

Mainframe COBOL and CICS to APIs, then cloud in slices

Cohash modernizes mainframe applications without a big-bang rewrite. We expose tested CICS and IMS transactions as REST APIs first, which gets new channels off screen scraping and file drops. Next, bounded functions are rebuilt as cloud services and run alongside the old ones, with outputs compared until the business signs off. The mainframe keeps doing what it does well until each slice is proven.

  1. 01Application and data inventory
  2. 02API layer over existing transactions
  3. 03Offload read traffic
  4. 04Carve out one bounded function
  5. 05Repeat and retire
case-study / mainframe-to-cloud-and-apis delivered
beforeCOBOL, CICS and Db2 on IBM Z afterAPIs and cloud services, moved in slices
01 · CHANNELS 02 · MAINFRAME API LAYER 03 · IBM Z 04 · CLOUD Web and mobile channels Web and mobilechannels Partners and new apps Partners and newapps Mainframe API gateway: REST · OAuth Mainframe APIgateway REST · OAuth CICS and IMS transactions: system of record z/OS CICS and IMStransactions system of record RACF: identities mapped from OAuth RACF identities mapped fromOAuth Db2 and VSAM Db2 and VSAM Cloud read store: inquiry traffic Cloud read store inquiry traffic Carved-out cloud service: one bounded function per slice Carved-out cloudservice one bounded functionper slice
case file

The story

Told without the client's name or anything that could identify them.

what happened

A payments processor's core systems ran COBOL, CICS and Db2 on IBM Z, and every new digital channel depended on a nightly file extract or screen scraping. Read-only inquiry traffic kept pushing MIPS costs up, and an earlier full rewrite had stalled and been cancelled. We mapped programs, transactions and batch schedules to business functions, then exposed tested CICS transactions as REST APIs secured with OAuth and mapped to RACF identities. Inquiry traffic moved to a cloud store fed by change data capture. After that we carved out one bounded function at a time, ran it beside the mainframe and compared every output until the business signed off.

why it was urgent

On 1 October 2026, IBM moved z/OS 2.5 to service extension, which puts a 3.x upgrade on most sites' plans anyway. CICS TS 6.3 has been generally available since September 2025. It brings Java 21 and OpenTelemetry tracing, plus an MCP server for CICS region data, so API and observability work gets easier on the platform you already have.

problem statement
  • openEvery new digital channel needs a nightly file extract from the mainframe.
  • recurringThe COBOL developers who really understand the core batch cycle are close to retiring.
  • blockedMIPS costs climb each year with read-only inquiry traffic.
  • openA previous full-rewrite project stalled after years and was cancelled.
architecture

The estate, before and after

before
before

Before: channels reach the mainframe through screens and files

Digital channels either scraped 3270 screens or waited for nightly batch extracts to get at mainframe data. Every inquiry ran on mainframe capacity, however simple.

Before: channels reach the mainframe through screens and files Digital channels either scraped 3270 screens or waited for nightly batch extracts to get at mainframe data. Every inquiry ran on mainframe capacity, however simple. 01 · IBM Z 02 · WORKAROUNDS 03 · CHANNELS reads · writes batch updates 3270 sessions scraped data JCL output nightly extract file drop z/OS CICS and IMStransactions COBOL programs Db2 and VSAM system of record Batch cycle JCL schedule Screen scraping 3270 screens Nightly file extracts batch output Web and mobile channels Partners file exchange
Read the diagram as text
  1. CICS and IMS transactions → Db2 and VSAM: reads · writes
  2. Batch cycle → Db2 and VSAM: batch updates
  3. CICS and IMS transactions → Screen scraping: 3270 sessions
  4. Screen scraping → Web and mobile channels: scraped data
  5. Batch cycle → Nightly file extracts: JCL output
  6. Nightly file extracts → Web and mobile channels: nightly extract
  7. Nightly file extracts → Partners: file drop
after
after

After: an API layer on the mainframe and functions moved to cloud in slices

Channels now call REST APIs through a mainframe API gateway that maps OAuth to RACF. Inquiry reads come from a cloud store fed by change data capture, and the functions we carved out run as cloud services, checked in parallel against the mainframe.

After: an API layer on the mainframe and functions moved to cloud in slices Channels now call REST APIs through a mainframe API gateway that maps OAuth to RACF. Inquiry reads come from a cloud store fed by change data capture, and the functions we carved out run as cloud services, checked in parallel against the mainframe. 01 · CHANNELS 02 · MAINFRAME API LAYER 03 · IBM Z 04 · CLOUD REST + OAuth REST + OAuth transactions identity mapping writes change data capture inquiry reads parallel run Web and mobile channels Partners and new apps Mainframe API gateway REST · OAuth z/OS CICS and IMStransactions system of record RACF identities mapped fromOAuth Db2 and VSAM Cloud read store inquiry traffic Carved-out cloudservice one bounded function perslice
Read the diagram as text
  1. Web and mobile channels → Mainframe API gateway: REST + OAuth
  2. Partners and new apps → Mainframe API gateway: REST + OAuth
  3. Mainframe API gateway → CICS and IMS transactions: transactions
  4. Mainframe API gateway → RACF: identity mapping
  5. CICS and IMS transactions → Db2 and VSAM: writes
  6. Db2 and VSAM → Cloud read store: change data capture
  7. Web and mobile channels → Cloud read store: inquiry reads
  8. CICS and IMS transactions → Carved-out cloud service: parallel run
results

What the client got

What changed for the client once the work was done. Described, not scored: we don't publish client figures.

  1. result 01

    New channels call APIs, not screens or files

    We put high-value CICS and IMS transactions behind a mainframe API gateway as REST APIs, so web, mobile and partner channels stopped scraping screens and waiting for file drops.

  2. result 02

    Inquiry reads come off the mainframe

    We replicate Db2 and VSAM data to a cloud store with change data capture. Inquiries read from that store, and writes keep going to the system of record.

  3. result 03

    Each migrated function is proven by comparison

    We ran every carved-out function in parallel with the mainframe and compared outputs until the business signed off on the slice.

  4. result 04

    Every API and service has an explicit access design

    We mapped OAuth on the gateway to RACF identities and gave each new cloud service an identity of its own, so none of them borrows a mainframe profile.

  5. result 05

    Retired code leaves the batch schedule

    Programs and batch jobs were retired slice by slice as functions moved. Because the batch schedule was mapped first, no downstream step lost the file it expected.

what can go wrong

Risks we plan for

  1. Undocumented business rules

    Decades-old COBOL holds rules nobody wrote down. Parallel runs with output comparison are the only reliable way to prove a slice behaves the same.

  2. Batch window dependencies

    Moving one job can break a downstream step that expects its file at 2 a.m. The batch schedule is mapped before anything leaves.

  3. Data consistency across two platforms

    During the transition the same data lives in two places. For each entity one side stays the system of record, and we watch replication lag.

  4. Security model mismatch

    RACF profiles don't map one-to-one to cloud IAM, so each API and new service gets an identity and access design worked out on purpose.

ai in this move

Where AI helps, and where it needs guardrails

CICS TS 6.3 ships with an MCP server for CICS region data, and AWS Transform has a mainframe agent for analysis and refactoring. We use AI to explain COBOL and to draft test cases from copybooks, then treat its output as a hypothesis until a parallel run proves it. Agents can read source and region data. Production transactions are off limits.

forward deployed engineers →
you keep

What you're left with

We write these for your setup, and they're working documents. Your team should be able to keep things running from them long after we've gone.

  • inventory01

    Program, transaction and batch inventory mapped to business functions

    yours to keep
  • inventory02

    API catalog for exposed CICS and IMS transactions

    yours to keep
  • design03

    Data replication design with system-of-record rules

    yours to keep
  • report04

    Parallel-run comparison reports per migrated function

    yours to keep
  • plan05

    Slice roadmap with retirement and MIPS reduction steps

    yours to keep
talent and delivery · apis and cloud services, moved in slices

Certified engineers, wherever you need them.

Some clients want a project team, some want a couple of engineers on theirs. Either works. Onsite, nearshore or offshore, with handovers across time zones that keep things moving.

Onsite

Engineers at your sites in the US

Nearshore

Overlapping hours with US teams

Offshore

Overnight progress on your backlog

All time zones

Coverage handed over across time zones

24-hour coverage · US Central time
OnsiteUS business hours
Nearshoreoverlapping US hours
Offshoreovernight progress
Combinedhandover, not hand-off
01Why not rewrite or rehost everything at once?

Big rewrites are riskiest, since the rules nobody wrote down tend to surface at the end. Going slice by slice proves each piece while the business keeps running. For some estates, rehosting COBOL on an emulator is reasonable, and we'll put it next to the slice approach fairly.

02How long does this take?

It depends on the size of the code base, how tangled the batch cycle is and how many functions you want off the platform. The API layer often comes first because it pays off without moving code.

03Do we need to upgrade z/OS first?

Not for the API work, but you need a supported release either way. z/OS 2.5 is in service extension, so we often plan the 3.x upgrade alongside.

04Can you staff mainframe engineers?

Yes. COBOL developers, CICS and IMS specialists, systems programmers and RACF administrators, on contract, contract-to-hire or permanent terms.

sources 4 sources linked last checked 2026-10-20 content fingerprint daa87f5b
  1. 01IBM: z/OS service extension table (June 2026)ibm.com ↗
  2. 02IBM Community: CICS Transaction Server 6.3community.ibm.com ↗
  3. 03IBM: z/OS 3.2ibm.com ↗
  4. 04AWS Transformaws.amazon.com ↗
Reviewed by the Cohash team Product names are trademarks of their owners. how we handle facts and data →
next step

Planning this move?

A 30-minute working session with a senior engineer. No slides.

useful to bring
  • The platform and the version you're on
  • Where you need to get to, and by when
  • What's custom: rules, plugins, integrations
  • Any audit finding or deadline driving it