Shuttle.Recall.SqlServer.EventProcessing
22.0.1
Prefix Reserved
dotnet add package Shuttle.Recall.SqlServer.EventProcessing --version 22.0.1
NuGet\Install-Package Shuttle.Recall.SqlServer.EventProcessing -Version 22.0.1
<PackageReference Include="Shuttle.Recall.SqlServer.EventProcessing" Version="22.0.1" />
<PackageVersion Include="Shuttle.Recall.SqlServer.EventProcessing" Version="22.0.1" />
<PackageReference Include="Shuttle.Recall.SqlServer.EventProcessing" />
paket add Shuttle.Recall.SqlServer.EventProcessing --version 22.0.1
#r "nuget: Shuttle.Recall.SqlServer.EventProcessing, 22.0.1"
#:package Shuttle.Recall.SqlServer.EventProcessing@22.0.1
#addin nuget:?package=Shuttle.Recall.SqlServer.EventProcessing&version=22.0.1
#tool nuget:?package=Shuttle.Recall.SqlServer.EventProcessing&version=22.0.1
Shuttle.Recall.SqlServer.EventProcessing
A Sql Server implementation of the Shuttle.Recall event projection processing mechanism.
Installation
dotnet add package Shuttle.Recall.SqlServer.EventProcessing
Configuration
This package processes projections against events already stored via Shuttle.Recall.SqlServer.Storage — it reuses that package's connection, schema, and database-creation settings, so UseSqlServerEventStorage must be configured alongside UseSqlServerEventProcessing:
services
.AddRecall()
.UseSqlServerEventStorage(options =>
{
options.ConnectionString = "connection-string";
options.Schema = "dbo";
})
.UseSqlServerEventProcessing(options =>
{
options.ProjectionPrefetchCount = 100;
});
SqlServerEventProcessingOptions has the following properties:
| Property | Default | Description |
|---|---|---|
ProjectionPrefetchCount |
100 |
Number of projection events fetched per round-trip |
MaximumCacheSize |
1000 |
Maximum number of entries kept in the event-type cache. Values above 100000 are clamped to 100000 |
CacheDuration |
00:01:00 |
How long cached entries are retained. Values above 01:00:00 are clamped to 01:00:00 |
ProjectionLockTimeout |
00:00:30 |
Timeout applied when acquiring a projection's processing lock |
ConnectionString, Schema, and ConfigureDatabase are not properties of SqlServerEventProcessingOptions — they come from SqlServerStorageOptions (see Shuttle.Recall.SqlServer.Storage) and are shared between both packages.
SqlServerEventProcessingOptions.SectionName is "Shuttle:Recall:SqlServer:EventProcessing", so the equivalent appsettings.json shape (for the properties that belong to this package) is:
{
"Shuttle": {
"Recall": {
"SqlServer": {
"EventProcessing": {
"ProjectionPrefetchCount": 100,
"MaximumCacheSize": 1000,
"CacheDuration": "00:01:00",
"ProjectionLockTimeout": "00:00:30"
},
"Storage": {
"ConnectionString": "connection-string",
"Schema": "dbo",
"ConfigureDatabase": true
}
}
}
}
}
Neither package binds these sections automatically — use
services.Configure<SqlServerEventProcessingOptions>(configuration.GetSection(SqlServerEventProcessingOptions.SectionName))(and the equivalent forSqlServerStorageOptions) if you want to configure fromappsettings.json.
Database
In order to create the relevant database structures you can use the Shuttle.Recall.SqlServer.EventProcessing.Database console application and provide the connection-string and (optional) schema arguments:
Shuttle.Recall.SqlServer.EventProcessing.Database --connection-string "connection-string" --schema "dbo"
Alternatively, you can let the library create the structures by setting SqlServerStorageOptions.ConfigureDatabase to true (which is the default).
Immediate Consistency
When a projection is configured for immediate consistency (see the Shuttle.Recall documentation's EventProcessingOptions.ImmediateConsistency options), this package tracks each event that a projection has already handled immediately in an ImmediateProjectionEvent table, via IImmediateProjectionEventRepository. This allows the eventual event processor to skip re-invoking that projection's handler for an event it has already handled immediately, while still advancing the projection's checkpoint over it.
This package provides SequentialProjectionEventService, a Sql Server-backed implementation of Shuttle.Recall's IProjectionEventService, which drives retrieval, acknowledgement, and deferral of projection events against the PrimitiveEvent/Projection/ImmediateProjectionEvent tables.
| 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
- Microsoft.EntityFrameworkCore.SqlServer (>= 10.0.11)
- Shuttle.Recall (>= 22.0.1)
- Shuttle.Recall.SqlServer.Storage (>= 22.0.1)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Shuttle.Recall.SqlServer.EventProcessing:
| Package | Downloads |
|---|---|
|
Shuttle.Access.Application
Application concern implementations such as Shuttle.Mediator participants. |
|
|
Shuttle.Access.SqlServer
Provides a Sql Server implementation of the data access components used by Shuttle.Access. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 22.0.1 | 81 | 8/17/2026 |
| 22.0.0-beta.1 | 51 | 8/15/2026 |
| 22.0.0-alpha.1 | 55 | 8/15/2026 |
| 21.0.3 | 721 | 4/17/2026 |
| 21.0.2 | 125 | 4/15/2026 |
| 21.0.2-rc3 | 140 | 4/11/2026 |
| 21.0.2-rc2 | 163 | 3/21/2026 |
| 21.0.1-rc1 | 133 | 2/28/2026 |
| 21.0.1-beta | 142 | 2/7/2026 |
| 21.0.0-alpha | 126 | 1/18/2026 |