Reading Three Promises in the Agent Era — a framework for MySQL teams. Part 1 →

Continuous Data Protection for MySQL · Built for the agent era

Rewind your MySQL
to any moment.

Welcome time-travel to MySQL.

Claude, Cursor, and Copilot now write your migrations, your tests, your queries. Some go to production directly. Some sneak in through a PR no one fully read.

Every INSERT, UPDATE, and DELETE · captured · attributed · reversible

Compatible with
Integrates with

02    The gap, closed

Every major OLTP has time travel. Now MySQL does too.

Oracle has had Flashback since 2001. SQL Server added Temporal Tables in 2016. CockroachDB shipped time travel on day one. MySQL never got it. dbtrail closes that gap without changing your schema, your engine, or your write path.

Engine Native row-level history Mechanism
Oracle Flashback Query, Version Query, Transaction Query Undo tablespace, Flashback Data Archive
SQL Server System-Versioned Temporal Tables (2016+) Parallel history table, auto-maintained
PostgreSQL None native — extensions like temporal_tables N/A
CockroachDB AS OF SYSTEM TIME within the GC window MVCC
MySQL None Binlog files
MySQL + dbtrail Continuous, retroactive — every table, no opt-in Indexed binlog stream, queryable history

Read the full argument: Every Major OLTP Has Time Travel. Except MySQL →

03    What it does

When something goes wrong in your database.

Every team running production MySQL is one bad query away from a disaster. dbtrail is the safety net that means you don't need a 4 a.m. backup restore to fix it.

The wedge · AI in the loop

Your migration was generated by Claude. Your test was generated by Cursor.

The agent doesn't have credentials to your database. Your developer does. Whatever the agent generated — a migration that drops a column with data, a test that DELETEs without WHERE — goes to production through a PR no one fully read. dbtrail catches it the moment it hits the binlog.

migration: DROP COLUMN customers.tier
generated by claude-code · approved by deploy@
→ 12,847 rows affected · recovery sql ready
Bad deploy

Production data changed when it shouldn't have.

A migration touched the wrong rows. dbtrail tells you which ones, what they looked like before, and gives you the SQL to revert exactly that.

847 rows updated · 2 unintended
order_id=44021, 44022 · active→cancelled
Forensics

"What happened last Tuesday at 3 p.m.?"

Search by table, time, primary key, column changed, or user. Or ask Claude in plain English.

claude → "who changed price on product 1042?"
→ deploy@rails-migration · 29.99→2.99
Compliance

Audit trail for SOC 2, HIPAA, PCI-DSS.

Every change to every row, with attribution and timestamps, indexed continuously. Aligned to your auditor's checklist.

retention: 365 days
tamper-evident · external storage

04    How you use it

Three interfaces. One index.

No commands to memorize. No connection strings to remember. Use whatever fits the workflow you're already in.

Talk to it

Native MCP. Ask Claude, Cursor, VS Code, or Windsurf in plain English. Recovery SQL comes back ready to review.

"Who deleted customer 442341?"
root@10.0.2.15 via rails-app, 14:23 UTC

Click through it

Web dashboard. Search by table, event type, time range, primary key, or changed column. Visual filtering with full before/after row data.

Server: prod-mysql-01
Table:  customers
Event:  DELETE
→ 3 results found

Script against it

REST API. Every query and recovery operation available programmatically. Drop into your CI/CD, your runbook, your incident response.

curl -X POST \
  api.dbtrail.com/v1/query \
  -d '{"event_type":"DELETE"}'
0.3s

Recovery SQL generation

Deterministic SQL ready to review. No LLM inference in the recovery path.

5lvl

FK-aware dependency depth

Topological sort across foreign keys. Parent row restored, children come with it.

100K/s

Events indexed per server

Continuous binlog capture. Sub-second RPO. No triggers, no polling, zero overhead.

05    Built in the open

The agent runs in your infrastructure.

bintrail, the capture engine, is open source. It runs inside your VPC, reads the binlog stream MySQL is already writing, and streams indexed events out. dbtrail never touches your raw data.

  • Auditable. Read every line of the Go agent on GitHub before you run it.
  • Outbound-only. One WebSocket out. No inbound connections to your network.
  • Dry-run by default. Recovery SQL is generated for review. Nothing executes without you.

github.com/dbtrail/bintrail · open source

07    Start

Connect a server. Skip the disaster.

15 minutes to set up. Sub-second RPO from the first event captured. Free tier forever for one server.

no credit card required  ·  soc 2 ready  ·  open-source agent