Writing

I Built an Event-Sourcing Database Engine: Meet GenesisDB

Jun 24, 20252 min read

GenesisDB is a lightweight, production-ready event-sourcing database engine written in Go. Here is what it does, what it doesn't, and why I built it.

I like working with event sourcing. But most of the tooling out there feels too heavy, too opinionated, too expensive or too closed.

So I built something that fits the way I like to develop.

GenesisDB is a side project: a lightweight, production-ready event-sourcing database engine, written in Go. It's designed for developers who love event sourcing and want something fast, simple, and transparent.

It handles the writing, reading, and watching of events with native precision. All while keeping consistency, reliability, and usability front and center. Whether you're just exploring event sourcing, comparing tools, or building a production-grade system.

What It Does

Blazing-fast reads. Still snappy on writes.

It's built to serve read-heavy systems efficiently, without making writes painful.

Just HTTP + ndjson

You can stream, commit, observe, and query events via plain HTTP. SDKs are available, but you can also write your own. It's easy.

One-command snapshots and restores

No complex backup pipelines. Snapshots are simple, recovery is even simpler.

Auditable and deterministic

Every state is the result of events. Every event is traceable. You always know what happened and why.

Events in GenesisDB are chained together, each one linked to the previous, making the full event history tamper-evident and audit-ready by design. Every state in your system emerges from these events, and every single one is traceable. You always know what happened, when, and in which order.

CloudEvents native

GenesisDB speaks the CloudEvents spec out of the box. There is no vendor lock-in. Use GenesisDB, leave anytime.

Operational transparency

Structured logs and Prometheus metrics are built in. No black boxes.

What It's Not

It's not trying to be Kafka, Postgres, or a replacement for existing battle-tested systems. But maybe that's a good thing, maybe that's exactly what makes it interesting.

This is the first public release, and while it's still growing, it already covers the core features you'd expect from a serious event store.

It's not trying to lock you into anything.

Why I Built It

Because I love building systems this way, and I wanted a tool that matches how I think about events, not the other way around.

You might love it. You might hate it. You might even start using it in your own stack.

GenesisDB is free for developers and small projects (up to 10,000 events). If you're making money with it and need more, I ask for a small license fee. Nothing outrageous. Need something tailored, technically or financially? Let's talk.