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
<PackageReference Include="Stratara.Orleans.EntityFrameworkCore" Version="4.4.4" />
<PackageVersion Include="Stratara.Orleans.EntityFrameworkCore" Version="4.4.4" />
<PackageReference Include="Stratara.Orleans.EntityFrameworkCore" />
paket add Stratara.Orleans.EntityFrameworkCore --version 4.4.4
#r "nuget: Stratara.Orleans.EntityFrameworkCore, 4.4.4"
#:package Stratara.Orleans.EntityFrameworkCore@4.4.4
#addin nuget:?package=Stratara.Orleans.EntityFrameworkCore&version=4.4.4
#tool nuget:?package=Stratara.Orleans.EntityFrameworkCore&version=4.4.4
Stratara.Orleans.EntityFrameworkCore
Derived. The behaviour described here is specified under
openspec/specs/, in theorleans-executionandevent-sourcing-storecapabilities. 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 | Versions 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. |
-
net10.0
- Stratara.EventSourcing.EntityFrameworkCore (>= 4.4.4)
- Stratara.Orleans (>= 4.4.4)
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.
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.