EventSourcingDB
The database built for Event Sourcing. Write, read, and observe events with consistency guarantees and a tamper-evident history – as a single binary, from a Raspberry Pi to Kubernetes.
Free up to 25,000 events – in development and in production, no license key needed.
- License
- Proprietary
- Runs on
- Container, Linux, macOS, Windows
- Speaks
- HTTP
General-purpose databases can store events. They just don't understand them.
Relational databases, document stores, and streaming platforms all get you part of the way. Ordering, append-only behavior, concurrency, and replay are then up to you. EventSourcingDB takes care of exactly these things – and nothing more.
- Events stay in order and are never changed. Append-only is the model, not a convention.
- Every write can check its preconditions. Nobody borrows a book that is already gone.
- History and live updates are one stream. Replay everything, then keep going in real time.
POST /api/v1/write-events HTTP/1.1
Authorization: Bearer secret
Content-Type: application/json
{
"events": [{
"source": "https://library.eventsourcingdb.io",
"subject": "/books/42",
"type": "io.eventsourcingdb.library.book-borrowed",
"data": { "readerId": "17" }
}],
"preconditions": [{
"type": "isSubjectPopulated",
"payload": { "subject": "/books/42" }
}]
}
One HTTP call, one CloudEvent, one precondition. If book 42 has never been acquired, the write is rejected.
Sixteen reasons, four promises.
Every capability links to the part of the docs where you can check it for yourself.
Reliable storage
- Atomic writesEvery write is fully committed, or not at all.Consistency Guarantees
- Optimistic lockingPreconditions detect concurrent writes without extra roundtrips.Preconditions
- SnapshotsFast replays, even with long event streams.Snapshots
- Tamper-evident historyEvery event is cryptographically chained to the one before.Verifying Store Integrity
Answers to all your questions
- Hierarchical subjectsGroup related events and read whole branches at once.Subjects
- Time travelRecover any historical state and explore what-if scenarios.Reading Events
- Replay to liveReplay the past and continue in real time without a gap.Observing Events
- Natural-language queriesAsk questions about your events through the MCP server.Introduction to the MCP Server
From Raspberry Pi to the cloud
- Temporary dataFull features with data that is removed on shutdown, for fast tests.Running EventSourcingDB
- Management UIHealth, license state, and EventQL in the browser.Using the Management UI
- One-minute configurationA handful of CLI flags, nothing more.CLI Overview
- Runs anywheremacOS, Linux, Windows, on x86 and ARM, in Docker or Kubernetes.Installing EventSourcingDB
Frictionless integration
- Client SDKsOfficial SDKs for seven languages, plus a partner SDK for Java.Client SDKs – Overview
- CloudEventsStandard event format, no lock-in.CloudEvents
- MonitoringHealth API, Prometheus, and OpenMetrics built in.Logging and Monitoring
- Real-time subscriptionsNo extra message broker needed.Observing Events
Everything that comes with EventSourcingDB.
Where EventSourcingDB fits in.
Other tools are great at what they were built for. Here is how they compare when the job is Event Sourcing – from our point of view, as the makers of EventSourcingDB.
| Relational databases | NoSQL databases | Event streaming | EventSourcingDB | |
|---|---|---|---|---|
| Ordered, append-only streams | Custom tables, append-only enforced by hand | Ordering via partitioning schemes or naming conventions | Ordered, but built for propagation, not as a long-term record | Native, with stream separation by subject |
| Concurrency per write | Ad hoc locking or optimistic concurrency in the application | Generally no consistent concurrency control | No stream-level isolation | Preconditions on every write |
| Snapshots and replay | Built yourself | Built from scratch | No built-in snapshots | Built in, including replay to live |
| Operation | Mature, well known | Flexible, scalable | Powerful, but a platform of its own | One binary, an HTTP API, minimal configuration |
Free to start. Licensed per instance.
Every plan includes every feature. What differs is the number of events you store, and who you are.
Free
Evaluation, development, and smaller systems
- No license key needed
- All features included
- Community support
Commercial
Companies and teams
- Unlimited events
- All features included
- Support plans available
Individual developer
Natural persons building in a private capacity
- Technically identical to Commercial
- Invoice issued to you personally
- Not for companies, including one-person companies
Volume and OEM
Larger fleets, hardware manufacturers, start-ups, non-profits
- Volume licenses
- OEM and embedded use
- Reduced terms for start-ups and non-profits
All prices per instance. For commercial licenses, VAT depends on your country; within the EU, the reverse-charge mechanism may apply with a valid VAT ID. Licenses renew automatically at the end of their term.
Support plans
Optional, on top of any license. One plan covers your organization, billed yearly.
Try it yourself.
Quickstart
This quickstart gets EventSourcingDB running on your machine in a few minutes: you start it with Docker, write a first event, and read it back. It uses a temporary setup for development and testing – for all other options, see the links at the end.
Start the quickstart →First Steps with EventSourcingDB
This tutorial builds a small library step by step. You write events for books, read them back, query them with EventQL, observe them as they happen, register event schemas, generate sample data, and finally list the subjects and event types that EventSourcingDB knows about.
Start the tutorial →EventSourcingDB Documentation
Quickstart, Fundamentals, Guides, Reference, SDKs & Tools, Operations, and Changelog.
Open the docs →Planning something bigger?
Whether you need a quote, support, or a second opinion on your architecture – we are happy to help.