UMM & COBOL
COBOL is very much still alive. Unfortunately for the institutions that use it!
UMM provides a method of moving small COBOL utilities to a different language and also for teaching COBOL and integrating it with other systems using middleware.
COBOL still runs a startling share of the world’s money, yet students rarely see it do anything but sit in a green-screen exercise. UMM lets a COBOL program join a modern message bus as a first-class agent, right beside Python and C, exchanging exactly the same typed messages. That makes it a genuinely useful teaching aid: you can stand the sameservice up in COBOL and in Python and watch them behave identically on the bus, while COBOL visibly does what it was designed for — exact packed-decimal arithmetic and PICTURE-clause formatting. It's a concrete way to teach middleware, legacy interoperability, and why fixed-point money matters, without a mainframe in the room.
We’re honest about the limits. UMM is not a mainframe migration platform. It won’t rehost millions of lines of COBOL, and it doesn’t replace CICS, JCL, VSAM, or your batch schedule. A large-scale conversion is not what this is for. But for a small COBOL site, or where one worthwhile piece can be cleanly isolated, putting a COBOL routine on the bus is a low-risk way forward — because the seam between old and new becomes a typed, self-describing message contract rather than a rewrite.
Get Realtime’s stories in your inbox
Join Medium for free to get updates from this writer.
Where that tends to fit:
- Isolate one valuable calculation. Wrap a single COBOL routine — interest or tax, pricing, an actuarial factor, account/check-digit validation, statement formatting — as an agent any modern service can call over the bus, without touching the rest of the system.
- Small shops. A handful of COBOL programs, each exposed as an agent, joined to newer Python or web services instead of being rewritten wholesale.
- Strangler-fig modernisation. Put a stable message contract in front of a COBOL module, then replace modules behind that seam one at a time — no big-bang cutover, and the bus never notices which side is legacy.
- Format bridging. Let COBOL do what it’s best at — packed-decimal, fixed-width, and EBCDIC record handling — and serve those conversions to modern agents on request.
Because an agent is identified on the bus by the messages it speaks, not the language it’s written in, a COBOL agent is indistinguishable from any other. That’s what makes COBOL approachable again — whether you’re teaching it, or quietly keeping a small system alive and useful.






