Stratara.Orleans.EntityFrameworkCore 4.4.4

Prefix Reserved
dotnet add package Stratara.Orleans.EntityFrameworkCore --version 4.4.4
                    
NuGet\Install-Package Stratara.Orleans.EntityFrameworkCore -Version 4.4.4
                    
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.Orleans.EntityFrameworkCore" Version="4.4.4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Stratara.Orleans.EntityFrameworkCore" Version="4.4.4" />
                    
Directory.Packages.props
<PackageReference Include="Stratara.Orleans.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.Orleans.EntityFrameworkCore --version 4.4.4
                    
#r "nuget: Stratara.Orleans.EntityFrameworkCore, 4.4.4"
                    
#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.Orleans.EntityFrameworkCore@4.4.4
                    
#: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.Orleans.EntityFrameworkCore&version=4.4.4
                    
Install as a Cake Addin
#tool nuget:?package=Stratara.Orleans.EntityFrameworkCore&version=4.4.4
                    
Install as a Cake Tool

Stratara.Orleans.EntityFrameworkCore

Derived. The behaviour described here is specified under openspec/specs/, in the orleans-execution and event-sourcing-store capabilities. Those specifications are the source; this page explains them.

License: MIT.

Entity Framework Core persistence for the Stratara Orleans execution model: the readers that return the event store in commit order and the checkpoint store the store-reading projections and sagas resume from. The columns and tables they need are declared by the framework's write and read contexts in Stratara.EventSourcing.EntityFrameworkCore, so a context derived from those carries them without further configuration.

What's in the box

Part What it does
PostgresTransactionIdReader<TContext> Reads in commit order on PostgreSQL, adding no work to an append
PortableCounterReader<TContext>, AddStrataraPortableCounterReader<TWriteContext>() Reads in commit order on any relational provider, through a per-partition counter; verified on PostgreSQL and on SQLite
PartitionCounterInterceptor Maintains the per-partition counter inside the appending transaction — in every process that appends
PartitionCounterBackfill Positions unpositioned entries after the partition's counter, never moving a position already handed out, so checkpoints stay true
CommitTransactionIdBackfill Stamps the entries a PostgreSQL store held before the commit record existed, in append order and bounded batches, once
AddStrataraProjectionCheckpoints<TReadContext>() Keeps the checkpoints in the read context
AddStrataraIntentStore<TWriteContext>() Records the commands the execution model's dispatcher accepts, in the outbox table, and claims a due batch in two statements
AddStrataraExecutionModelReset<TReadContext>() Clears reminders, membership, directory and the host's checkpoints while no silo runs

Quick start

The read side — projections that read the store in commit order from a checkpoint:

builder.Services
    .AddSingleton<ICommittedPositionReader, PostgresTransactionIdReader<AppWriteDbContext>>()
    .AddStrataraProjectionCheckpoints<AppReadDbContext>()
    .AddStrataraProjectionGrains();

The write side — commands recorded before the dispatch returns and resumed after a crash:

builder.Services
    .AddStrataraOrleansCommandDispatcher()
    .AddStrataraIntentStore<AppWriteDbContext>()
    .AddStrataraSingletonWork<OutboxDrainWork>(OutboxDrainWork.WorkName);

The record is committed in a transaction of its own, not with what the caller writes.

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 (1)

Showing the top 1 NuGet packages that depend on Stratara.Orleans.EntityFrameworkCore:

Package Downloads
Stratara.Testing.Orleans

Run the Stratara Orleans execution model in a test's own process — one silo with in-memory reminders and grain directory, the real write stack, commit-order reader and checkpoint store on in-memory SQLite, and every period shortened to seconds. Register handlers, projections, sagas and timers with the production calls; no cluster, broker or database server. Builds on Stratara.Testing.EntityFrameworkCore.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
4.4.4 42 10/10/2026
4.4.3 46 10/10/2026
4.4.2 149 10/2/2026
4.4.1 114 9/29/2026
4.4.0 95 9/27/2026
4.3.1 106 9/25/2026
4.3.0 145 9/23/2026
4.2.0 164 9/18/2026
4.1.1 101 9/16/2026
4.1.0 101 9/16/2026

A one-fix release. On the Redis-backed replay state, a host could report a replay still active after it had ended
it, holding publication back for up to one refresh interval. Nothing else changes; no configuration or migration is
needed.

### Fixed

- **A host no longer reports a replay active after it ended the replay itself.** On the Redis-backed replay state, a
 refresh that had read the marking just before the host's own deactivation could compare its generation before the
 deactivation and write the field after it, leaving `IsReplayActive` true — and publication held back — until the
 next refresh (`ProjectionReplay:RefreshSeconds`, default 5). The comparison and the write are now one step with the
 transition. Present since 4.4.2.