{
  "video": {
    "id": "oWqsBuhRRZ4",
    "title": "How We Mapped a 35-Million-Line Mainframe in 4 Days - Stephen Chin, Neo4j & Neeraj Deshmukh, Blitzy",
    "duration": 1184,
    "upload_date": null,
    "channel": "AI Engineer",
    "source": "AI Engineer",
    "event_format": ""
  },
  "analysis": {
    "video_id": "oWqsBuhRRZ4",
    "title": "How We Mapped a 35-Million-Line Mainframe in 4 Days - Stephen Chin, Neo4j & Neeraj Deshmukh, Blitzy",
    "one_liner": "AI modernization of legacy systems fails less because models can't write code than because they lack system-wide context, so Blitzy and Neo4j build a provenance-tracked knowledge graph of the whole estate, give each agent a task-specific slice, and require tested proof of behavioral parity.",
    "summary": "Stephen Chin and Neeraj Deshmukh argue that legacy modernization is a context problem: an AI asked to convert a COBOL interest formula to Java misses the record precision, account updates, transaction output and batch contracts around it. They contrast vector and relational retrieval with multi-hop knowledge graphs, then show how Blitzy combines a graph, thousands of agents, human-approved plans and heavy validation to generate pull requests with evidence. Customer examples include reverse engineering a 35-million-line mainframe in four days and modernizing a 25-million-line monolith nine times faster. They also argue that the resulting knowledge layer supports new features, security remediation, compliance and other business uses beyond modernization.",
    "key_points": [
      "Using the AWS card demo's interest calculation, the speakers show that the monetary result depends on the batch job, copybooks and layouts, VSAM data and account updates, not just the formula; they say the AI's failure is not knowing the '14 other places' the logic is used.",
      "They say vector databases provide only similarity search and relational databases over MCP are limited to single-hop fact lookup, while graphs provide accurate multi-hop context.",
      "They claim models advertised with million-token context windows have 200k or less usable context, or an effective 20-30%, which they equate to about 200,000-300,000 lines of code, because accuracy falls dramatically as context fills.",
      "Every graph edge keeps its identity and evidence: repo origin, revision, symbols touched, file and source span, and extraction method. The graph updates on every merge, and stale information is invalidated.",
      "Each Blitzy agent receives a task context packet containing the task description, its place in the graph, a slice of the source, constraints, available evidence and unanswered questions; the speakers define 'infinite code context' as having the right information at the right time and place, not remembering everything.",
      "The Blitzy pipeline reverse engineers the estate, extracts business logic, workflows and dependencies, takes user requirements and rules, and produces an agent action plan for human approval. Agents then generate and validate code, delivering a pull request and an evidence-bearing project guide.",
      "Parity is tested on both the baseline and modern systems across inputs and outputs, returned values, persisted state, transaction output and error outcomes, with no differences allowed. In one example, Java's inherent rounding produces a 1-cent discrepancy that the speakers say would go uncaught without a parity test and would then be repeated across a million transactions.",
      "Reported customer results: a Fortune 100 insurer's transpiled job output was byte-for-byte identical to its golden mainframe baseline; a tier-one bank's trade posting monolith became six capability modules in 18 days versus a planned 18 engineer weeks, with 4,000+ tests and less than half the code; a 35-million-line mainframe was reverse engineered in four days after a systems integrator spent about eight months and several million dollars with nothing to show; and a 25-million-line policy admin monolith was modernized nine times faster than a human using AI, with 85% of the code completed autonomously and almost 90% of that reaching production."
    ],
    "takeaways": [
      "Before asking AI to change legacy code, map the whole system, including jobs, copybooks, data contracts and downstream dependencies, rather than pointing it only at the code being converted.",
      "Do not rely on filling a large context window; give agents precise, task-scoped context, and use a graph where relationships and multi-hop dependencies matter.",
      "Record provenance on knowledge graph edges and refresh the graph on every merge so stale information can be invalidated.",
      "Prove parity rather than assuming it: compare the baseline and modern systems on money precision and rounding, persisted state, transaction output and failure paths, and handle existing defects through explicit decisions.",
      "Keep humans in charge of key decisions by having a domain expert approve a plan defining scope, what gets transformed and what must be preserved, with explicit guardrails for security, governance and compliance."
    ],
    "topics": [
      "legacy modernization",
      "knowledge graphs",
      "context engineering",
      "agents",
      "mainframe",
      "cobol",
      "testing",
      "compliance"
    ],
    "tools": [
      "Neo4j",
      "Blitzy",
      "AWS Card Demo",
      "COBOL",
      "Java",
      "VSAM",
      "MCP",
      "PostgreSQL",
      "TypeScript",
      "Python",
      "Nodes conference",
      "Blu Age sandbox"
    ],
    "quotes": [
      {
        "text": "the failure here is not that AI can't write the code. It's that AI doesn't know the 14 other places where that logic, that code is being used.",
        "at": "03:33",
        "url": "https://www.youtube.com/watch?v=oWqsBuhRRZ4&t=213s"
      },
      {
        "text": "context is serial, but information has relationships.",
        "at": "05:46",
        "url": "https://www.youtube.com/watch?v=oWqsBuhRRZ4&t=346s"
      },
      {
        "text": "We actually spend more computes on testing than we do on code gen.",
        "at": "10:03",
        "url": "https://www.youtube.com/watch?v=oWqsBuhRRZ4&t=603s"
      },
      {
        "text": "you have to prove the parity. You can't take it as an assumption or as a promise.",
        "at": "12:03",
        "url": "https://www.youtube.com/watch?v=oWqsBuhRRZ4&t=723s"
      }
    ],
    "words": 3545
  },
  "summary_url": "/#oWqsBuhRRZ4",
  "transcript": {
    "html": "/transcripts/oWqsBuhRRZ4.html",
    "txt": "/transcripts/oWqsBuhRRZ4.txt",
    "vtt": "/transcripts/oWqsBuhRRZ4.vtt"
  }
}