
Dan Beglin
Dan is currently Lead Developer at Griffiths Waite, based in Birmingham. He focuses on providing technical solutions to the Financial Services industry and building software development teams that don’t hate their job. Dan generally works with Typescript, OracleDB and Azure. Outside of work, his particular interests are catching pokemon, woodwork and trying new whiskeys.
Lead Developer @ Griffiths Waite
What's Actually in Your 30-Year-Old Legacy Database? How We Used AST and Javascript to Find Out
Session Type: Talk
Every company has a haunted database—ours was 30 years old, undocumented, and everything depended on it. We cracked it open with an AST parser, building a dependency map of procedures, tables, and views. Learn how compiler techniques can turn legacy chaos into something you can work with.
Behind every enterprise application stack hides a database that’s been evolving for decades. It started as a few well-structured tables, but years of stored procedures, cursors, replication rules, and “temporary fixes” have turned it into an undocumented dependency web. Migrating away is risky, yet the entire organisation depends on it and its painful to work with.
We faced this exact challenge with a 30-year-old Oracle database at the heart of the business. All our microservices depended on it, migration programs had stalled, and no one could say with certainty which tables or procedures were truly in use.
Our approach was to treat the database like source code. Using Abstract Syntax Trees (ASTs) and Typescript, we built a recursive parsing engine that could: • Extract and catalog procedures and functions directly from the database. • Analyse procedure calls, views, cursors, and table usage. • Construct a dependency graph to visualise critical business logic.
The result was a living map of the system that allowed us to really get what we were using under the hood and reduce our dependancies safely
This talk walks through the architecture of the parser, how we optimised it for PL/SQL code, and how we’ve expanded the same method to other languages. You’ll learn how compiler techniques actually work and how you can use them against your own codebases - and then what you could do with what you discover.
If you’ve ever been blocked by a “black box” legacy database, you’ll leave with practical strategies, open-source tools, and proof that even a 30-year-old Oracle system can be demystified.
Behind every enterprise application stack hides a database that’s been evolving for decades. It started as a few well-structured tables, but years of stored procedures, cursors, replication rules, and “temporary fixes” have turned it into an undocumented dependency web. Migrating away is risky, yet the entire organisation depends on it and its painful to work with.
We faced this exact challenge with a 30-year-old Oracle database at the heart of the business. All our microservices depended on it, migration programs had stalled, and no one could say with certainty which tables or procedures were truly in use.
Our approach was to treat the database like source code. Using Abstract Syntax Trees (ASTs) and Typescript, we built a recursive parsing engine that could: • Extract and catalog procedures and functions directly from the database. • Analyse procedure calls, views, cursors, and table usage. • Construct a dependency graph to visualise critical business logic.
The result was a living map of the system that allowed us to really get what we were using under the hood and reduce our dependancies safely
This talk walks through the architecture of the parser, how we optimised it for PL/SQL code, and how we’ve expanded the same method to other languages. You’ll learn how compiler techniques actually work and how you can use them against your own codebases - and then what you could do with what you discover.
If you’ve ever been blocked by a “black box” legacy database, you’ll leave with practical strategies, open-source tools, and proof that even a 30-year-old Oracle system can be demystified.
We are looking for sponsors!
Sponsors make this conference possible, we're actively looking for people to support!