Skip to content

Introduction

VirtualDB is a database proxy. It sits in front of your existing database server and intercepts every connection, query, and write that your application makes.

It is not a new database. It does not store data permanently. It does not require you to migrate, seed, or manage a separate environment. Your database doesn't move.

The problem it solves

Every developer working against a shared database is a liability. A bad migration, a runaway DELETE, a forgotten WHERE clause — any of these can corrupt data that every other developer, every CI pipeline, and every test suite depends on. The standard responses are painful: spin up a full copy of the database per developer, maintain teardown scripts, or work against stale fixtures that drift from production.

VirtualDB takes a different approach. It gives every process its own private view of the database, with zero infrastructure overhead.

How it works

When your application sends a read, VirtualDB forwards it to the source database and streams the result back — exactly as if VirtualDB weren't there.

When your application sends a write, VirtualDB captures it in a private, in-memory delta. The write is never forwarded to the source. Subsequent reads are answered using the merged view of source data plus the delta, so your application sees a fully consistent result.

When the VirtualDB instance exits, the delta is discarded. The source database is left exactly as it was found.

The isolation boundary

The isolation boundary is the process boundary.

Each VirtualDB instance has its own delta. Two instances running at the same time — even against the same source database — have completely independent deltas. A write made through one instance is invisible to all others.

  • Each developer runs their own instance. No one's changes affect anyone else.
  • Each CI job runs its own instance. Jobs are isolated with no shared state to clean up.
  • Each AI agent runs its own instance. Autonomous writes never reach the source.

Key concepts

Source database

The real database server that VirtualDB proxies. VirtualDB requires a read-only service account on the source. It never writes to the source directly.

Delta

The private, in-memory set of writes captured by a VirtualDB instance during its lifetime. It is local to the instance, never persisted, and never shared. See The Delta Model for a deep dive.

Wire protocol

VirtualDB speaks the native wire protocol of your database. Any client, ORM, or query builder that already works with your database works with VirtualDB — no SDK, no code changes, no adapter layer.

Driver

A driver is the protocol-specific component of VirtualDB. vdb-core is the protocol-agnostic framework; a driver implements the wire protocol boundary for a specific database. vdb-mysql is the MySQL driver and the first available implementation.

Plugin

Plugins are out-of-process executables that connect to VirtualDB over JSON-RPC 2.0 on Unix sockets. They can intercept and modify queries at well-defined pipeline points without touching VirtualDB's core. See Plugins.

Current status

VirtualDB is in Public Alpha. MySQL is the first supported database, available today as a pre-built Docker image and Linux/amd64 binary. Postgres and additional drivers are on the roadmap.

VirtualDB is licensed under the Elastic License 2.0 — free to self-host. A managed hosted offering is planned.

Next steps

  • The Delta Model — understand exactly how writes are captured and reads are merged
  • Plugins — extend VirtualDB without modifying it
  • MySQL: Installation — get vdb-mysql running against your source database

Released under the Elastic License 2.0.