Frameworks and Databases¶
Once you're ready to try combining Event Sourcing with AI and machine learning, the next question is: How do I start building?
While Event Sourcing is not tied to any particular technology, choosing the right tools can make implementation significantly easier – especially when you want to integrate analytical pipelines and AI workloads from the start.
Here are two components you can use to get started.
EventSourcingDB – A Database Built for Event Sourcing¶
EventSourcingDB is a specialized database that acts as event store and message bus in one.
It was built specifically to support:
- Reliable storage of immutable events
- Transactional publishing of events to subscribers
- Projections with built-in indexing and filtering
- Time-travel, replays, and full history retention
Unlike general-purpose databases, EventSourcingDB is focused on domain-driven, event-centric design – with features tailored to event-sourced systems from the ground up.
A great fit when event-driven architecture is central to your application.
EventSourcingDB also provides an MCP server that allows Large Language Models to interact with your event store directly – reading events, writing events, running queries, and exploring schemas through conversation. This opens up new possibilities for ad-hoc exploration and conversational analytics. For the conceptual background, see LLMs as a Direct Interface to Event Streams. For the technical setup, refer to the EventSourcingDB documentation.
Nimbus – A CQRS Framework for TypeScript and JavaScript¶
Nimbus is an open-source application framework for building event-driven systems using CQRS and Event Sourcing in TypeScript and JavaScript.
It helps you:
- Structure your application around commands, events, and queries
- Define schemas as the single source of truth, with end-to-end type safety
- Run on both Node.js and Deno, with OpenTelemetry built in
Nimbus is designed to be minimalist and explicit, integrating natively with EventSourcingDB and avoiding hidden lifecycles or runtime metaprogramming.
Ideal if you're building in TypeScript or JavaScript, on Node.js or Deno.
OpenCQRS – A CQRS Framework for Java and the JVM¶
OpenCQRS is a lightweight, opinionated framework for building applications based on CQRS and Event Sourcing.
It helps you:
- Structure your application around commands, events, and aggregates
- Separate write and read models cleanly
- Handle event persistence, publishing, and projections
OpenCQRS is designed to be modular and extensible, making it a good fit for real-world applications – from prototypes to production.
Ideal if you're building in Java, Kotlin, or any other JVM-based language.
Next up: Not sure how to apply all this in your team or project? Check out our Consulting and Workshops to see how we can help.