Author
Matt Yonkovit
@yonk
EDB. Open source, databases, developer advocacy. The Yonky flow is named for him.
37 entries
- Blog
Why We Run Multiple LLMs (and Make Them Argue)
One model gives you one confident answer. The problem is "confident" and "correct" aren't the same word.
- Tutorial
DB2 → PostgreSQL: A Worked Example
A worked DB2 to PostgreSQL example: FETCH FIRST n ROWS ONLY, SYSIBM.SYSDUMMY1, VALUES quirks, identity columns, and SQL/PL to PL/pgSQL patterns.
- Tutorial
Moving and assessing Oracle application code to Postgres using Swordfish
Drive the Swordfish web UI through a full Oracle to Postgres assessment of the HR demo: read the grade, find the critical PL/SQL findings, turn 336 findings into a plan.
- Blog
Stop Re-Asking the LLM the Same Question
Incremental distillation: hash the inputs, skip unchanged checks, and cut ~64% of LLM calls on an unchanged re-run — with an honest note on what is not gated yet.
- Tutorial
Tutorial 3 — Memory & Cost: Stop Re-Diagnosing (and Re-Paying for) the Same Problems
Add cross-run memory and incremental skipping so the tool stops re-diagnosing the same issues and an unchanged re-run costs a fraction of the first.
- Tutorial
Moving and assessing MySQL application code to Postgres using Swordfish
Drive the Swordfish terminal UI through a full MySQL → Postgres assessment of a real PHP app — find the embedded SQL, read what breaks, export the plan.
- Blog
Heuristics + AI: Why Deterministic Rules Come First
The cheapest, most accurate part of Swordfish doesn't use AI at all. That's not an accident.
- Tutorial
SQL Server → PostgreSQL: A Worked Example
A worked SQL Server to PostgreSQL example: TOP, IDENTITY, GETDATE/ISNULL/LEN, bracket identifiers, MERGE, and READ UNCOMMITTED habits.
- Blog
Teaching an Audit Tool to Remember
Cross-audit lineage and supersession: immutable history, and the what-changed-since-last-time report a returning user actually wants.
- Tutorial
Tutorial 2 — Build an LLM-as-Judge: Catching Hallucinations Before They Ship
Build the LLM-as-judge verification layer: a cheap deterministic grounding check plus a multi-model consensus vote — including the substring-grounding bug in its natural habitat.
- Blog
The Stuff That Isn't in the Code: Inferred Knowledge and Why Migrations Lose It
Your application knows things it never wrote down. The migration is where it forgets.
- Tutorial
MySQL → PostgreSQL: A Worked Example
A worked MySQL to PostgreSQL example: AUTO_INCREMENT, backtick identifiers, ENUM, ON DUPLICATE KEY, GROUP BY ordering, and the dump-to-PG rewrite path.
- Blog
A Tour of the Swordfish Sample Apps (and What Breaks in Each)
The hardest part of evaluating a database migration tool is finding something honest to point it at.
- Blog
Welcome to Goldfish
EDB ships open-source software, sample code, tutorials, and one-click infra for developers — without adding to the noise.
- Tutorial
Your first pgvector query
Install pgvector, embed three documents, and run a similarity search — in about 10 minutes.
- Video
Intro to Bento
A 4-minute tour of agent memory in Postgres.
- Podcast
Episode 1 — The No-Spin Zone
Why honesty is a design system. Mike and Yonk on the Goldfish thesis.
- Code
pgvector basics
Create the extension, a table with an embedding column, and an HNSW index.
- Blog
Cheap Checks Before Expensive Ones: The Two-Part Judge Pattern
The two-part judge pattern in ~40 lines: a deterministic filter first, multi-model consensus second. It generalizes to RAG, extraction, and code review.
- Blog
Why agent memory belongs in Postgres
A vector store is an index, not a database. Agent memory needs both — and pgvector is the door.
- Tutorial
Build a Bento memory store in 15 minutes
Stand up Postgres + pgvector, seed three documents, and ask /v1/ask its first question.
- Tutorial
Tutorial 1 — Foundations: Structured Output + a Multi-Provider LLM Harness
Replace free-form LLM prose with structured Finding objects over a multi-provider harness — the checkable spine the rest of the build depends on.
- Code
Bento /v1/ask — minimal client
Twelve lines of TypeScript to ask a Bento memory store a grounded question.
- Blog
Swordfish: A Harness for Your Copilot, Not Migration-in-a-Box
We're not trying to replace your LLM. We're trying to make it stop guessing.
- Tutorial
Oracle → PostgreSQL: A Worked Example
A worked Oracle to PostgreSQL example: the constructs Swordfish flags most (CONNECT BY, ROWNUM, NVL, packages), the recommended PG/EPAS change, and the human-review step.
- Blog
I Asked an LLM to Diagnose My Database. Then I Asked Another LLM if It Was Lying.
The origin story of the judge: the model invented a shared_buffers value. The fix was not a bigger model — it was cheap grounding plus a second-opinion jury.
- Tutorial
Tutorial 0 — We Vibe-Coded a Database Doctor. Does It Actually Work?
We vibe-coded a 100-point Postgres health check. Does it actually work? The quickstart, the two engines, and an honest gut-check of where the naive version fails.
- Code
mega-app — Oracle multi-language order management
A Java · Go · Python · PHP multi-language order management on Oracle, built to break the way real migrations do. A Swordfish Sample App for testing the Oracle→PostgreSQL assessment.
- Blog
Why Database Migrations Are a Developer Problem
The schema is the easy part. The code is where migrations go to die.
- Code
ecommerce-php — MySQL e-commerce storefront
A PHP 8 e-commerce storefront on MySQL, built to break the way real migrations do. A Swordfish Sample App for testing the MySQL→PostgreSQL assessment.
- Code
api-node — MySQL mobile & social REST API
A Node.js · Express mobile & social REST API on MySQL, built to break the way real migrations do. A Swordfish Sample App for testing the MySQL→PostgreSQL assessment.
- Code
hr-dotnet — SQL Server HR & payroll
A C# · .NET 8 HR & payroll on SQL Server, built to break the way real migrations do. A Swordfish Sample App for testing the SQL Server→PostgreSQL assessment.
- Code
etl-python — SQL Server data-warehouse ETL
A Python · pyodbc data-warehouse ETL on SQL Server, built to break the way real migrations do. A Swordfish Sample App for testing the SQL Server→PostgreSQL assessment.
- Code
claims-java — IBM DB2 insurance claims
A Java · JDBC insurance claims on IBM DB2, built to break the way real migrations do. A Swordfish Sample App for testing the IBM DB2→PostgreSQL assessment.
- Code
actuarial-python — IBM DB2 actuarial analytics
A Python · ibm_db actuarial analytics on IBM DB2, built to break the way real migrations do. A Swordfish Sample App for testing the IBM DB2→PostgreSQL assessment.
- Code
trading-java — Sybase ASE trading & settlement
A Java · JDBC trading & settlement on Sybase ASE, built to break the way real migrations do. A Swordfish Sample App for testing the Sybase ASE→PostgreSQL assessment.
- Code
risk-python — Sybase ASE risk reporting
A Python risk reporting on Sybase ASE, built to break the way real migrations do. A Swordfish Sample App for testing the Sybase ASE→PostgreSQL assessment.