Skip to content

Packages

Core

PackageNuGetDescription
NagareNuGetAggregates, events, projections, subscriptions, OpenTelemetry, middleware. Everything you need to build event-sourced systems.
Nagare.TestingNuGetGiven-When-Then harness, Eventually for polling projections, Find() for querying projected state.

Database stores

PackageNuGetDatabasesNotes
Nagare.SqlServerNuGetSQL ServerProduction-grade with MERGE upsert support.
Nagare.SqliteNuGetSQLiteIdeal for development and testing.
Nagare.PostgreSqlNuGetPostgreSQLFull support with advisory locks for distributed subscriptions.
Nagare.MySqlNuGetMySQL / MariaDBFull support with distributed locks.

Messaging

PackageNuGetDescription
Nagare.MessagingNuGetPub/sub messaging abstractions — topic publishers, consumers, subscription runners.
Nagare.Messaging.KafkaNuGetApache Kafka implementation using the Confluent client.

Quick start

xml
<PackageReference Include="Nagare" />
<PackageReference Include="Nagare.Sqlite" />
csharp
builder.Services.AddNagare();
builder.Services.AddNagareSqliteStorage(connectionString: "Data Source=nagare.db");
builder.Services.AddAggregate<BookAggregate, BookCommand, BookEvent, BookState>();

For PostgreSQL:

xml
<PackageReference Include="Nagare" />
<PackageReference Include="Nagare.PostgreSql" />
csharp
builder.Services.AddNagare();
builder.Services.AddNagarePostgresStorage(connectionString: "Host=localhost;Database=nagare");
builder.Services.AddAggregate<BookAggregate, BookCommand, BookEvent, BookState>();

Next: Recipes

流れ — flow.