Real Application Testing for the modern stack

Prove your database changes against real production workloads — before you ship.

Scry captures your real query workload, replays it against your proposed change on a pinned copy of production data, and tells you exactly which queries got faster, slower, or stayed the same — with a reproducible proof attached. Schema migrations, version upgrades, index and type changes, query optimizations.

Every change comes with a receipt — not a vibe.

Other tools guess from metrics and hallucinate. Scry runs your real workload on a pinned shadow and proves the result — a regression caught, or an optimization confirmed.

Regression caught

184ms 3ms (92x)

A teammate added a region column to orders — backfilled, CI green, PR approved. Staging never caught the sequential scan. Scry replayed production traffic against the shadow and flagged the 92x slowdown before the PR merged. Three-line fix. Zero customer impact.

Read the full post-mortem →

Optimization confirmed

−41% buffer gets

A candidate covering index, predicted to cut logical I/O on the top query. Scry ran the real workload both ways and confirmed −41% buffer gets, frequency-weighted across the corpus — verdict improved, with the data snapshot and stats pinned so the result re-runs identically. (Illustrative example.)

See how the proof works →

Each result pins the data snapshot, frozen stats, workload window, and Postgres version — re-run the exact experiment and get the same verdict. Verdicts rest on logical I/O and plan shape, frequency-weighted across your workload; wall-clock is reported with confidence intervals, never as the sole story.

Predict, then prove.

Scry sits transparently between your application and database. It estimates the impact of a change in sub-seconds, then replays your real workload against it on a shadow — so you see exactly how your change performs under real load before you ship.

Pillar 1 — Predict Estimate the impact first

Planner what-if analysis estimates each query's change in cost in sub-second time. Cheap triage ranks candidates and kills the obvious losers before any workload runs.

Pillar 2 — Replay Replay the real thing

Then Scry replays your actual captured workload — real timing, real concurrency, real data shapes — against the change on a pinned shadow. No synthetic scripts to write.

ScryData architecture: capture, predict, shadow replay, and proof pipeline

The proof loop

1
Capture

Scry captures every production query transparently, with bind parameters and timing

2
Predict

Planner what-if estimates the per-query impact and triages candidates in sub-seconds

3
Replay

Execute the real captured workload against the shadow running your proposed change

4
Prove

Emit a reproducible receipt: which queries regressed, improved, or stayed stable

Validate any change to your database

If a change can alter how your queries perform, Scry can prove its impact against your real workload first — the same predict-then-replay loop, whatever the change.

Schema migrations Index, column, and table restructures — shadow-tested before they merge
Version upgrades New Postgres version, same schema — catch plan flips and regressions early
Index changes Add or drop indexes and see the real logical-I/O impact across the workload
Column & type changes Prove a type narrowing doesn't truncate answers or wreck a hot path
Query optimizations Confirm a rewrite or covering projection actually pays off, frequency-weighted

Proof you can reproduce. Capture safe for production.

~100μs
Proxy overhead — safe on production traffic
Zero-copy
Query parsing, built in Rust
Pinned
Snapshot + stats — every proof re-runs identically
On the roadmap

Today you propose the change. Soon, Scry will.

The proof engine is the foundation. On top of it, Scry is growing into an agent that finds the change, proves it, and brings you the receipt.

Today You propose, Scry proves

You bring a schema change, upgrade, or optimization. Scry predicts, replays your real workload, and hands back a reproducible proof of the impact.

Coming Scry proposes too

Scry watches your workload and schema continuously, proposes the change itself — a missing index, a better type, a partition — and opens a PR with the proof already attached. Autonomy is a dial you control: recommend-only, auto-open-PR, or auto-apply within your guardrails.

Coming It checks its own work

After a change merges and ships, Scry compares production reality to its prediction — "predicted −38%, delivered −35%" — and calibrates. Trust is earned, not assumed.

Built by database veterans

Scry was born from real-world pain. After executing 100+ production database migrations at enterprise scale, we knew there had to be a better way to change a database than hoping staging caught everything. So we built the proof engine we wished we had.

100+
Production Migrations

Hands-on experience changing critical production databases at scale

Hard-Won
Lessons Learned

Every failure mode we've seen is built into Scry's design

Enterprise
Scale Experience

Background in high-throughput systems serving critical workloads

Our Mission

We believe changing a database shouldn't be high-stakes gambling. Scry brings empirical, reproducible proof to every database change — and is growing into an agent that proposes those changes and proves them for you. We built the tool we wished we had; now we're sharing it.

Frequently Asked Questions

How is ScryData like Oracle Real Application Testing?

Oracle Real Application Testing validated this category with two tools: SQL Performance Analyzer (predict the per-statement impact of a change) and Database Replay (replay real production workload with true timing and concurrency). Scry brings that same predict-then-replay capability to PostgreSQL and the open stack. It captures live traffic continuously through a wire-protocol proxy — no synthetic scripts to write — keeps a shadow current with CDC so you test against real data shapes and volume, and attaches a reproducible proof to every verdict. No Oracle license, no lock-in.

What is shadow database testing?

Shadow database testing means applying your proposed change to a copy of your database that's receiving real production traffic — before you deploy. Scry proxies queries between your application and PostgreSQL, captures every query, and replays it against the shadow running your change. If a query that ran in 3ms now takes 200ms, you know before your users do — and you get a reproducible proof of the result.

How does ScryData compare to pt-upgrade?

pt-upgrade is a Percona Toolkit utility that replays MySQL slow-log files against two instances to validate version upgrades. Scry validates the full range of database changes — schema migrations, version upgrades, index and type changes, query optimizations — against real production workloads. The key differences: Scry captures live traffic continuously via a wire-protocol proxy rather than replaying static log files, uses CDC replication to keep the shadow current with production data, and proves each verdict with a reproducible receipt grounded in logical I/O and plan shape.

What is the production overhead?

Less than 1ms per query at p50, benchmarked on commodity hardware against PgBouncer as the baseline. At 100 concurrent connections, scry-proxy adds roughly 1% latency. Event publishing to the replay pipeline is fully async and best-effort — if the buffer fills, oldest events are dropped rather than slowing down queries. Observability never sits in the query path.

More questions →

Early Access Program

Join platform engineers, database architects, and SREs who prove their database changes against real production workloads before they ship.

Your information is used solely for ScryData early access notifications.