How We Mapped a 35-Million-Line Mainframe in 4 Days - Stephen Chin, Neo4j & Neeraj Deshmukh, Blitzy
AI Engineer · 19 min · 212 sentences · from YouTube's caption track
Each timecode opens YouTube at the start of that sentence. Line anchors (#s42) are the cue ids in the WebVTT, and every line carries its start and end seconds. All transcripts has every talk, and the whole corpus as one file.
- 00:01[music]
- 00:12We have a really exciting session for you guys.
- 00:14So, um you probably don't realize how many systems and how much of the infrastructure which drives modern finance, which drives all the things which happen in the financial district in New York City
- 00:28are driven off very old systems which can use a lot of modernization.
- 00:35And you probably interact with them on your on your cell phone, you maybe you're banking on a mobile app, but you don't realize that underneath the covers there's business rules, there's batch jobs running in nightly processes.
- 00:48You have all these different data contracts and things running under the covers.
- 00:52And it's running on infrastructure which people are frankly afraid to touch, right?
- 00:57If you if you make one little line of code change, you risk breaking the whole system.
- 01:03And um so this is um fun fact about myself.
- 01:07So, um you know, now I'm I'm known for doing a lot of developer relations, AI conferences, book writing.
- 01:13Um back 30 years ago, I was a Java developer who was migrating COBOL code off mainframes and like, you know, figuring out how to modernize applications.
- 01:26And it was multi-year projects, very challenging work which inevitably you hit little bugs and issues.
- 01:34You couldn't test it thoroughly enough to hit all the different corner cases and very very challenging projects which often failed.
- 01:43So, I think that what we're going to show you today is amazing cuz it's a new path forward where you can drive the change and you can actually do this, but
- 01:54um why don't you tell us a little bit about how this works, Neeraj?
- 01:58Thank you, Steve.
- 01:59So, we're going to do this with an example, right?
- 02:03Uh, in the context of a public demo system which Amazon developed a few years ago.
- 02:10This is the AWS card demo.
- 02:12And going to take a specific example here where we are trying to compute interest, right?
- 02:22And so, as you can see in this little chart, we have a batch job that's calling the interest program which is getting the copybooks and layouts and then generating basically VSAM
- 02:37data, right?
- 02:38And so, the output here is money and of course, the result depends on the inputs, the job that runs it, the account updates, not just the formula for computing the interest, right?
- 02:53So, let's remember this example.
- 02:56We're going to keep coming back to this, hit that theme over and over again as we progress through the talk.
- 03:04So, when I want to modernize this and I tell AI, hey, change that formula from Cobalt to Java, all it's going to do is find the formula, try to convert that, right?
- 03:17What it doesn't find is the the record precision, the account updates, the transaction output, the batch contract.
- 03:25And if you miss any of these, you're not guaranteed to get the right outcomes.
- 03:32So, the failure here is not that AI can't write the code.
- 03:37It's that AI doesn't know the 14 other places where that logic, that code is being used.
- 03:45Okay, and this this looks pretty scary.
- 03:46I mean, besides the AI not knowing the code, that pipe looks like it's about to burst.
- 03:51Yeah, and of course, the AI doesn't know that it's going to happen any moment now.
- 03:54So, Stephen, you would think that a context expansion would fix this.
- 04:01Why doesn't that
- 04:02Yeah.
- 04:03So I I think that one of the things actually the previous presenter talked a bit about this, how we're we've all been relying on better models, on having better systems, a better AI systems to solve this.
- 04:15And frankly, it hasn't been working for these sorts of use cases and the reason is context.
- 04:20So you can do vector databases to get and you know expand your context, but all it gives you is similarity searches.
- 04:28You can do relational databases as well and this gives you a much bigger repository.
- 04:34You can hook it up via an MCP server, but again, you're you're limited on kind of single hop and like looking up facts and information by SQL queries.
- 04:43What a graph gives you is a graph gives you this multi hop accurate information and context for your model.
- 04:51And the reason why this context is so important is because your model cannot possibly give you the right results because it can't utilize its own context.
- 05:03So most models, you know, nowadays are advertised with a million token context windows.
- 05:09Um but what do they actually how much usable context do you actually get?
- 05:15And the reality is you get 200k or less usable context, right?
- 05:18So it's by by study the accuracy goes down dramatically as you fill the context more and this means you have to give precise and accurate context.
- 05:30Yeah, the effective context these days is about like 20 to 30% which means about 200 to 300,000 lines of code.
- 05:39If your software is bigger than that, too bad.
- 05:42You're going to start losing information.
- 05:45So context is serial, but information has relationships.
- 05:50Information has connections between it.
- 05:53And this is the key to how you can actually line up your data.
- 06:03Yeah.
- 06:04So I mean here so code becomes a graph, right?
- 06:06You can see all of these relationships that are being mapped here now.
- 06:10Uh, and like the the program is there.
- 06:15It has the the job that's executing it, the copy book that are getting included, so on and so forth, the outputs.
- 06:21The important part here is the stuff on the right.
- 06:27So, every edge in the graph keeps its identity, right?
- 06:32Where did it come from in the repo?
- 06:33What revision was it?
- 06:34What symbols does it touch?
- 06:36There is evidence for the file and the and the source span, how it was extracted.
- 06:41And the graph keeps getting updated on on every merge as the code changes, so does the uh the graph.
- 06:48And that way you keep it fresh, you keep it current, you invalidate stuff that is no longer valid.
- 06:54Yeah, and you can see that the code is very much a graph-shaped problem.
- 06:57So just from the structure and the relationships, it's something where you have a lot of interconnects.
- 07:03Um, and then when you what why don't you talk about how this works for agents?
- 07:08Sure.
- 07:09So, each agent uh in Blitzz has a specific task context packet, right?
- 07:16And that includes what the task description is, uh but also where does it belong to in that graph, right?
- 07:23There's the slice of the source, right?
- 07:25What constraints it has imposed, what evidence it has available, and what questions are still not answered that that agent is now supposed to work on.
- 07:36Uh, and this is what we mean by infinite code context, right?
- 07:38It's not remembering the entire uh information in in your code base, in your software estate.
- 07:44It's basically having access to the right information at the right time, in the right place.
- 07:53So, Blitzz effectively works like a compiler for the entire knowledge in the enterprise, right?
- 08:00You start off by reverse engineering the entire software estate.
- 08:04You extract the business logic, uh the workflows, the dependencies.
- 08:09Then you get the requirements and the rules from the user to say, what do you want to do with this?
- 08:14And you convert that into an actionable agent action plan, right?
- 08:19This is the spec that you're going to use to make that forward change.
- 08:25Note that next block there, there is a human approval, right?
- 08:28Nothing happens without a human in the lead making decisions at every key point, right?
- 08:35But once you have that plan reviewed and approved by the human, now the agents go off, they do the code generation.
- 08:44But there is also validation that is baked into it at every step.
- 08:47And so the end result is you get tested and validated code in the form of a pull request and an evidence documentation for what has happened and how it has been validated
- 08:58in the form of a project guide.
- 09:00So there is a human approval at every step that matters.
- 09:07And because you have access to the full repository and you also have the instructions about how to build the environment, how to run the code, you are not restricted
- 09:19to just static information.
- 09:21You can actually observe the runtime behavior and make changes accordingly.
- 09:28So the the knowledge graph basically drives all of this, right?
- 09:32But that's not the only thing that helps here.
- 09:37There are two other things that compound the impact that this has.
- 09:41One is hyperscale orchestration.
- 09:43Like we have thousands of agents who all share that plan.
- 09:47Every agent has access to the effective context and there is nothing lost between them.
- 09:54And couple that with extreme validation, right?
- 09:57You have testing happening at every stage of code generation.
- 10:02We actually spend more computes on testing than we do on code gen.
- 10:06And this results in what is effectively production safe code, that has been tested, validated at enterprise scale and so it is safe to make merges into your production systems.
- 10:22So the agent action plan is is the spec, right?
- 10:25That's the plan before you start doing any actual work and it decides what the scope is, what gets transformed and what must be preserved, right?
- 10:37And a domain expert, a human would review this, make sure that it's aligned with their expectations, approve it and this is coupled with the four controls that are inherent
- 10:49at every step.
- 10:50There is system level context, that's the knowledge graph we talked about, right?
- 10:55Every change impacts the entire estate, so everybody needs to be aware of that, right?
- 10:59There is continuous validation, so testing, testing, testing, right?
- 11:03There's no substitute for that.
- 11:05You have explicit guardrails in place to address your security, your governance, your compliance requirements.
- 11:11These are inherent to any regulated industry and of course finance, right?
- 11:15And then the human in the lead because the decisions that matter are owned by real people.
- 11:20The AI is not making them autonomously.
- 11:25And this of course preserves the behaviors, right?
- 11:28The existing behaviors have to be transferred as is to the to the modernized code and how do you verify that?
- 11:39Right.
- 11:40So in this case like we want to preserve the money like the precision, the rounding.
- 11:47We want to preserve the state, the balances and the transaction records, failures, operations, everything, right?
- 11:54If we have defects, they also need to be managed with explicit decisions.
- 11:59The rules have to be preserved as well and you have to prove the parity.
- 12:04You can't take it as an assumption or as a promise.
- 12:09So the way we do that is there is testing on the baseline.
- 12:14There is equivalent testing happening on the modern system, and we are looking at inputs and outputs, the returned values, what states get persisted, what is the transaction output look like, right?
- 12:26What are the error outcomes?
- 12:28Not just the happy path, but how do you deal with like bad situations?
- 12:33And all of those have to be exactly matching in the context of each operation, and the differences have to be none.
- 12:43That's our promise to deliver this.
- 12:47So this is layer, right?
- 12:49This doesn't happen only in the end.
- 12:51This is baked into the very fabric of the code generation.
- 12:53Every line of code that gets generated gets built and tested with unit tests.
- 12:58The build has to be compiled.
- 13:01Runtime integration, it has to fit within the existing kind of framework that you have.
- 13:07Your data parity has to be there on every write, and the end-to-end workflow has to be identical.
- 13:15So this is a code from one of the customers where we actually did this, right?
- 13:18The transpiled job produces output that is byte for byte identical to the golden mainframe baseline.
- 13:23This is from a Fortune 100 insurance.
- 13:27Here's a fun example.
- 13:29So so this is something I can get into as an old Java developer where we we made lots of errors with big decimals and rounding in our implementation.
- 13:37So AI can do this better, right?
- 13:40Right.
- 13:40I mean you you you would think so, right?
- 13:43Because like you computed a a Java version of this this formula to compute interest, right?
- 13:50Cobol behaves differently than Java.
- 13:51Java has an inherent rounding up built into it.
- 13:55What that means is the modern code compiles, it generates results that you believe are correct because it's behaving like normal Java code, right?
- 14:06But you have this little difference of that 1 cent that happened because of the inherent rounding.
- 14:12If you didn't have that parity test, you wouldn't have caught this.
- 14:15And now imagine this happening over a million transactions.
- 14:19Fun.
- 14:22So that was just one kind of simple example, right?
- 14:27But now you can think of like a full trade posting engine where this gets applied throughout the entire workflow.
- 14:33This is something that we did for a tier one bank where we had a monolith that had stored procedures uh cross database uh kind of uh write access going on.
- 14:44This got converted into six capability modules uh with PostgreSQL, Java, TypeScript, Python, the fully modern stack uh and with full parity.
- 14:56Right?
- 14:56And took only 18 days uh whereas their original plan was to have uh 18 engineer weeks dedicated to this project.
- 15:05Right?
- 15:05This was doing things the kind of human way.
- 15:09Uh with Blitzz, it got reduced to 18 days.
- 15:12Right?
- 15:12We We wrote 4,000 plus tests.
- 15:14Uh the modern code was less than half the size of the of the new of the old stack uh and the customer was happy.
- 15:24There is no doubt that we can use Blitzz to modernize the whole system is is what they said.
- 15:30Another example, mapping a 35 million line mainframe.
- 15:34Uh this is something uh that they had spent on an SI about eight months, several million dollars and had nothing to show for it.
- 15:41Uh Blitzz reverse engineered that in a matter of four days and this is what they have to say.
- 15:46They've been in the dark room with a pencil light inspecting each individual module.
- 15:50Blitzz feels like flipping on the overhead light, seeing the whole room at once.
- 15:55This is what AI accompanied by a knowledge layer can do for you.
- 16:01Right?
- 16:02Uh another example, we modernized a 25 million line monolith.
- 16:06This was a policy admin platform again uh compared to a human aided by AI like your typical IDE based uh agentic tools uh would have taken a certain amount of time.
- 16:17We did it nine times faster.
- 16:1985% of the code was autonomously completed and almost 90% of that made it into production.
- 16:27This extends to different systems, different companies.
- 16:30As long as you understand the whole system before you change it using AI, you're good.
- 16:37And this doesn't just stop at modernization, right?
- 16:39Ultimately, transformation is the goal.
- 16:42Britezi is not a modernization platform.
- 16:44It is a transformation platform.
- 16:46You can do new product development.
- 16:49You can add new features.
- 16:50You can do security remediation and detection.
- 16:53All kinds of use cases open up when you have that entire estate available to you.
- 16:59And so another coming back to the card demo, now that you have modernized it, you may want to add a new feature, a promotional rate to the interest path, right?
- 17:09You already have the upgraded knowledge path now because you already have the modern system.
- 17:14Your knowledge layer got updated.
- 17:16You have your governance rules established.
- 17:18You have your test suite expanded.
- 17:20So now this becomes a lot easier and faster and cheaper to do than it had been before.
- 17:28And then you can do this beyond the code to expand this kind of knowledge to apply to new cases, new use cases like providing audience, providing evidence for like audit ready
- 17:44compliance issues.
- 17:49So as you can see, this is heading beyond software and mapping the whole business now.
- 17:57Yeah, so I think that you can see the power of building a an modern enterprise layer on top of a knowledge graph.
- 18:05And it starts with a graph, builds out the business rules, business processes, and then allows you to build end-to-end systems which not only solve the modernization use case, but they also give you capabilities
- 18:18to expand your business.
- 18:20So you can now do um for example, Dora compliance on your um entire system to make sure it meets regulatory requirements.
- 18:29You can track business rule changes.
- 18:31You can do financial fraud and build um use cases which will track down other sorts of problems and this expands to even further out where you can extend your system and build more value off of it.
- 18:47We want to leave you with a few references to um to take with you.
- 18:51So um one is the Nodes conference, that's the QR code on the left, is a full 24 hours of sessions learning on knowledge graphs on how you can build and apply a bunch of these concepts
- 19:05for our knowledge graphs to your own systems.
- 19:08And um Niraj, you want to talk about
- 19:10Yeah, the Blu Age sandbox, that's the QR code on the right, will allow you to in fact bring in your own code and uh see this for yourself.
- 19:17Don't just take our word for it.
- 19:19You can also see the AWS card demo modernization that we showed here uh as an example there.
- 19:26Okay, so thanks so much for joining our session at A and G in New York City.
- 19:30And um if you have any more questions, feel free to drop by the Neo for J booth or come up and chat with us after the talk.
- 19:35Thank you.
- 19:36Thank you very much.