Eventuous gives .NET developers a focused, production-ready toolkit for building event-sourced systems. It models your domain with strongly-typed aggregates and states, handles commands through a fluent service layer, persists events to KurrentDB (EventStoreDB), PostgreSQL, SQL Server, or SQLite, and fans events out to read-model projectors and message brokers — all with first-class OpenTelemetry observability built in.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Eventuous/eventuous/llms.txt
Use this file to discover all available pages before exploring further.
Introduction
Learn what Eventuous is, what problems it solves, and how the core concepts fit together.
Quickstart
Build a working event-sourced booking service with KurrentDB in under ten minutes.
Core Concepts
Understand aggregates, events, commands, projections, and the event store abstraction.
Domain Model
Define aggregates, states, identities, and domain events from your ubiquitous language.
What’s included
Command Services
Fluent aggregate-based and functional command handlers with built-in optimistic concurrency.
Event Store
IEventStore abstraction with KurrentDB, PostgreSQL, SQL Server, SQLite, and Redis backends.Subscriptions
Durable, checkpointed subscriptions with concurrent channel workers and consume-pipe filters.
Projections
MongoDB, PostgreSQL, SQL Server, and SQLite projectors for building read models.
ASP.NET Core
Minimal-API
MapCommand and controller base class to expose commands over HTTP with one line.OpenTelemetry
Automatic distributed tracing and metrics for commands, subscriptions, and event store calls.
Get started in four steps
Model your domain
Create an
Aggregate<TState>, a State<T> record, a typed Id, and your domain events.Add a command service
Derive from
CommandService<TAggregate, TState, TId> and register handlers with the fluent On<TCommand>() builder.Eventuous is published to NuGet. Stable versions, release candidates, and preview builds from the
dev branch are all available.