Writing

GenesisDB Is Open Source

Oct 29, 20263 min read

GenesisDB is now open source under the MIT license and available to everyone. A thank you to everyone who trusted it, shaped it and helped improve the 1.x line.

GenesisDB is now open source and available to everyone.

The code is on GitHub under the MIT license. No event limits, no license keys, no special tier. You can read it, run it, embed it, fork it, and send pull requests.

Thank you

When I first released GenesisDB, it was a side project built around how I like to work with events. I did not expect how many people would actually put it into their stacks.

I am grateful for the trust placed in me. Running your data on a database written by one person is a real decision, and many of you made it anyway.

I am grateful for the valuable lessons learned along the way. About storage and recovery, about what developers really need from an event store, and about what it means to keep software running in other people's production systems.

And I am grateful for the wonderful people I've had the pleasure of meeting because of this project. Thank you for all the tips, advice, and contributions that helped improve the 1.x line. Bug reports, feature ideas, long conversations about event sourcing, and plenty of honest feedback. GenesisDB is better because of you.

What you get

The open source release is GenesisDB 2, and it keeps what made GenesisDB useful:

  • CloudEvents native events in a hierarchical subject tree
  • atomic batch commits with preconditions
  • live subscriptions over Server-Sent Events
  • GDBQL for queries, projections and aggregates
  • a SHA-256 hash chain over every event, verifiable with one request
  • erasable reference payloads for personal data
  • backup and restore, Prometheus and OpenTelemetry metrics

On top of that, it brings a lot of what you asked for over the last months:

  • Every feature for everyone. No editions, no license keys, no event limits.
  • Read and write tokens next to the administrator token, so services and dashboards only get the access they need.
  • TLS built in, no reverse proxy required for encrypted connections.
  • Embeddable. store.Open(dir) gives you GenesisDB inside your own Go program, and every engine (storage, index, cache, query) can be imported on its own.
  • Much faster commits. Twice the throughput of 1.x: around 12,000 durable events per second, 1,000 events in a single batch in about 60 ms, half a million realistic events seeded in 47 seconds.
  • Much faster reads. Fetching a cached subject takes 0.6 ms, a count over 61,000 events is answered from the index in 26 ms, and a cold start with 500,000 events is ready in 100 ms.
  • Strict GDBQL. A typo like LIMT 5 now fails with a clear error instead of silently returning a different result.
  • Index self-repair. Damaged indexes are rebuilt from the event logs automatically, no manual rebuild needed.
  • An erasure audit trail. Every GDPR erasure writes a requested and a completed system event.
  • An MCP endpoint at /mcp, so AI agents can explore subjects, run queries and, with a write token, commit events.
  • Opt-in request limits that fail explicitly instead of truncating results.
  • Better observability with structured logging, genesisdb_* metrics and OpenTelemetry export.
  • Multi-arch images on Docker Hub and GitHub Packages, plus static binaries with checksums for every release.

Coming from 1.x

GenesisDB 2 is a drop-in replacement for the 1.x line. Existing data directories migrate on first start, every 1.x backup restores, and the 1.x API still answers under /api/v1, so your clients keep working.

The migration is one-way. Back up your data directory before upgrading.

Get started

docker run --rm --name genesisdb \
  -e GENESISDB_AUTH_TOKEN="$(openssl rand -hex 32)" \
  -p 127.0.0.1:8080:8080 \
  -v genesisdb-data:/app/data \
  genesisdb/genesisdb:latest

Or install it with Go:

go install github.com/genesisdb-io/genesisdb/v2/cmd/genesisdb@latest

Everything else is in the repository and on genesisdb.io.

GenesisDB now belongs to everyone who uses it. I'm looking forward to seeing what you build with it, and to your issues and pull requests.

Thank you.