DEV Community

Bashiru Bukari
Bashiru Bukari

Posted on

VentStream — open source CDC engine that syncs your database to search, cache, and AI agents in realtime

Keeping downstream systems in sync with a database is one of those problems every team ends up solving badly — cron jobs that miss deletes, sync scripts that drift, search indexes you can only trust after the nightly rebuild. The only time you find out something went wrong is when a user reports stale data.

VentStream solves this by reading the database's change stream directly and keeping replicas in sync within milliseconds — including the hard parts: joined documents, delete propagation, and exactly-once delivery through deterministic document ids.

What it does

Sources: Postgres, MySQL, MongoDB, Neo4j, Kafka

Sinks: OpenSearch / Elasticsearch, Meilisearch, Redis

Realtime: GraphQL subscriptions and WebSocket fan-out with cursor resume — reconnect and pick up exactly where you left off

You can declare joins once — an order embeds its customer and line items — and the engine keeps the composed documents in sync from the change stream. A delete on a child row updates the parent document in the index. No sync jobs, no invalidation code.

One thing we just shipped: an MCP server for AI agents

The engine now includes a built-in MCP server, so AI agents (Claude Desktop, Claude Code, any MCP client) can query your synced data directly:

  • Agents get live answers without holding any database credentials
  • Scoped access tokens per agent — an agent sees only the targets you allow
  • The joins spec doubles as schema documentation the agent discovers by itself

Point Claude at your replicas with one subcommand and it can answer "what's the status of order 4351?" from data that's milliseconds fresh.

Try it

One line, macOS and Linux:

curl -fsSL https://ventstream.dev/install.sh | sh
Enter fullscreen mode Exit fullscreen mode

Stream a MongoDB database into Elasticsearch — this is the whole setup:

VS_ROLES=cdc VS_CDC_SOURCE=mongodb \
VS_MONGO_URI='mongodb+srv://user:pass@cluster.example.net/' \
VS_MONGO_DATABASE=shop \
VS_MONGO_STATE_DIR=./state \
VS_MONGO_BOOTSTRAP_MODE=snapshot \
VS_OS_ENDPOINT=http://localhost:9200 \
VS_INDEX_TEMPLATE='${header:ventstream.cdc.relation}' \
ventstream
Enter fullscreen mode Exit fullscreen mode

Docs: https://ventstream.dev/docs

Repo: https://github.com/ventstream/ventstream

Looking for testers and contributors

The engine is running in production against sustained load, but real-world databases are where sync tools earn their keep — different schemas, different scales, different failure modes. If you run Postgres, MySQL, MongoDB, or Neo4j and have ever fought a sync pipeline, I'd genuinely like to hear what breaks or what's missing.

Open to contributors as well — the connector surface (Typesense and ClickHouse sinks are on the list), the MCP tools, and docs are all good places to start. Issues and discussions are open on the repo.

Top comments (0)