Stratara.EventSourcing.EntityFrameworkCore 3.1.6

dotnet add package Stratara.EventSourcing.EntityFrameworkCore --version 3.1.6
                    
NuGet\Install-Package Stratara.EventSourcing.EntityFrameworkCore -Version 3.1.6
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Stratara.EventSourcing.EntityFrameworkCore" Version="3.1.6" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Stratara.EventSourcing.EntityFrameworkCore" Version="3.1.6" />
                    
Directory.Packages.props
<PackageReference Include="Stratara.EventSourcing.EntityFrameworkCore" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Stratara.EventSourcing.EntityFrameworkCore --version 3.1.6
                    
#r "nuget: Stratara.EventSourcing.EntityFrameworkCore, 3.1.6"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Stratara.EventSourcing.EntityFrameworkCore@3.1.6
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Stratara.EventSourcing.EntityFrameworkCore&version=3.1.6
                    
Install as a Cake Addin
#tool nuget:?package=Stratara.EventSourcing.EntityFrameworkCore&version=3.1.6
                    
Install as a Cake Tool

Stratara.EventSourcing.EntityFrameworkCore

License: MIT.

EF Core persistence for the Stratara event-sourced stack — PostgreSQL flavoured via Npgsql + pgvector. Bundles four previously-separate Stratara projects into one NuGet because they always ship together:

Folder Contents Old csproj
EntityFrameworkCore/ shared EF conventions, value generators, IDbContext / IReadDbContext / IWriteDbContext / ITenantScopedDbContext / IIdentityDbContext, UnitOfWork base, DefaultDbResolver, NpgsqlDbContextServiceCollectionExtensions, DbContextMigrationUtility Stratara.EntityFrameworkCore
WriteStore/ WriteDbContext, WriteUnitOfWork, event-stream/snapshot/event-chain/command-audit/outbox repositories + entity configurations Stratara.EventSourcing.EntityFrameworkCore.WriteStore
ReadStore/ ReadDbContext, ReadUnitOfWork, ProjectionsUnitOfWork, Tenant repository, projection entity configurations Stratara.EventSourcing.EntityFrameworkCore.ReadStore
IdentityStore/ Generic ASP.NET Identity IdentityDbContext + marker Stratara.EventSourcing.EntityFrameworkCore.IdentityStore

Namespaces are unchanged from the pre-fold layout (Stratara.EntityFrameworkCore, Stratara.EventSourcing.EntityFrameworkCore.WriteStore, Stratara.EventSourcing.EntityFrameworkCore.ReadStore, Stratara.EventSourcing.EntityFrameworkCore.IdentityStore) so consumer using directives don't change.

Why folded

WriteStore-without-ReadStore is not a real use case. EF conventions + value generators + UnitOfWork primitives are foundational for every other store. ASP.NET Identity glue follows the same EF Core conventions. Splitting into 4 NuGets that always ship together adds version-management noise (4× <PackageVersion> to keep in sync, transitive-resolution risk) without any consumer benefit.

If your application doesn't use ASP.NET Identity, simply don't reference IdentityDbContext-derived types — the rest of the package works without them.

Quick start

// In your AppHost / Worker / Web project:
builder.Services.AddNpgsqlWriteStore<MyAppWriteDbContext>(builder.Configuration);
builder.Services.AddNpgsqlReadStore<MyAppReadDbContext>(builder.Configuration);

Then derive MyAppWriteDbContext : Stratara.EventSourcing.EntityFrameworkCore.WriteStore.WriteDbContext and MyAppReadDbContext : Stratara.EventSourcing.EntityFrameworkCore.ReadStore.ReadDbContext.

Health checks

Two opt-in readiness checks plug into any IHealthChecksBuilder (they require the write store above to be registered):

builder.Services.AddHealthChecks()
    .AddEventStoreHealthCheck()                                  // write-side DB reachable?
    .AddOutboxHealthCheck(degradedThreshold: 1_000,             // outbox backlog depth
                          unhealthyThreshold: 10_000);
  • AddEventStoreHealthCheck() — probes write-store connectivity; Unhealthy when the database cannot be reached.
  • AddOutboxHealthCheck(degradedThreshold?, unhealthyThreshold?) — reports the pending outbox backlog under the pending data key and escalates to Degraded / Unhealthy when the count crosses the supplied thresholds (omit them to stay healthy while reachable).

Both are tagged ready by default, so they show up on a readiness endpoint rather than the liveness (live) one.

Dependencies

  • Stratara.Projections — for projection types used by ProjectionsUnitOfWork.
  • Stratara.Shared — for diagnostics + abstractions + resilience.
  • Npgsql.EntityFrameworkCore.PostgreSQL, EFCore.NamingConventions, Microsoft.AspNetCore.Identity.EntityFrameworkCore, Microsoft.EntityFrameworkCore, Microsoft.Extensions.Diagnostics.HealthChecks, Pgvector.EntityFrameworkCore.
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on Stratara.EventSourcing.EntityFrameworkCore:

Package Downloads
Stratara.Infrastructure

Infrastructure glue for the Stratara framework — authorization decorators, configuration providers, and DI composition helpers that wire Mediator, Outbox, Identity, and EF Core into a hosted app.

Stratara.EventSourcing.WorkerDefaults

Worker-host wiring composites for the Stratara event-sourced stack. IHostApplicationBuilder extensions (AddBackendServices, AddCommandWorkerServices, AddEventProjectionWorkerServices, AddSagaWorkerServices, AddOutboxWorkerServices) bundle the per-concern DI calls so each worker host opts in with one line.

Stratara.Testing.EntityFrameworkCore

Spin up the real Stratara event-sourcing write stack (EventSource, aggregation, snapshots, the EF Core write store) against a shared in-memory SQLite database in one call — production code paths, no Postgres, no Docker. Builds on Stratara.Testing's in-memory doubles.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
3.1.6 93 6/22/2026
3.1.5 96 6/22/2026
3.1.4 136 6/15/2026
3.1.3 131 6/10/2026
3.1.2 142 6/5/2026
3.1.1 207 6/1/2026
3.1.0 119 5/30/2026
3.0.23 125 5/28/2026

### Changed

- **License changed from FSL-1.1-MIT to the MIT License.** Stratara is now OSI-approved open
 source — free for any use, including commercial, with no competition clause and no two-year
 conversion delay. The previous Functional Source License (source-available, converting to MIT
 two years after each release) has been replaced outright. Package metadata now declares the
 SPDX expression `MIT` (`PackageLicenseExpression`), so nuget.org renders a standard clickable
 MIT license label instead of an embedded custom-license file. The `LICENSE` file at the repo
 root now contains the standard MIT text and is still bundled into every package. No code or API
 changes accompany this — it is purely a licensing and metadata change. Previously published
 versions (3.0.20 through 3.1.5) remain under the FSL terms they shipped with; this change applies
 to all versions released from here on.