Excalibur.Saga.SqlServer
3.0.0-alpha.120
dotnet add package Excalibur.Saga.SqlServer --version 3.0.0-alpha.120
NuGet\Install-Package Excalibur.Saga.SqlServer -Version 3.0.0-alpha.120
<PackageReference Include="Excalibur.Saga.SqlServer" Version="3.0.0-alpha.120" />
<PackageVersion Include="Excalibur.Saga.SqlServer" Version="3.0.0-alpha.120" />
<PackageReference Include="Excalibur.Saga.SqlServer" />
paket add Excalibur.Saga.SqlServer --version 3.0.0-alpha.120
#r "nuget: Excalibur.Saga.SqlServer, 3.0.0-alpha.120"
#:package Excalibur.Saga.SqlServer@3.0.0-alpha.120
#addin nuget:?package=Excalibur.Saga.SqlServer&version=3.0.0-alpha.120&prerelease
#tool nuget:?package=Excalibur.Saga.SqlServer&version=3.0.0-alpha.120&prerelease
Excalibur.Saga.SqlServer
SQL Server implementation of saga state persistence for the Excalibur framework.
Part Of
This package is included in the following metapackages:
| Metapackage | Tier | What It Adds |
|---|---|---|
Excalibur.SqlServer |
Complete | Everything for SQL Server: ES + Outbox + Inbox + Saga + LE + Audit + Compliance + Data |
Tip: Install
Excalibur.SqlServerfor a production-ready SQL Server stack with a single package reference.
Installation
dotnet add package Excalibur.Saga.SqlServer
Features
SqlServerSagaStore- Dapper-based saga state persistence- MERGE-based upsert for atomic save operations
- Connection factory pattern for multi-database scenarios
- Optimistic concurrency with ROWVERSION
- AOT-compatible with full Native AOT support
- NO Entity Framework Core dependency
Usage
// Register SQL Server saga store via ISagaBuilder
services.AddExcaliburSaga(saga =>
{
saga.UseSqlServer(sql =>
{
sql.ConnectionString = connectionString;
});
});
// Or register individually
services.AddSqlServerSagaStore(sql =>
{
sql.ConnectionString = connectionString;
});
// Or with connection factory
services.AddSqlServerSagaStore(sp =>
() => new SqlConnection(GetConnectionString(sp)));
// Or use with IDispatchBuilder
builder.UseSqlServerSagaStore(sql => { sql.ConnectionString = connectionString; });
Configuration
services.AddSqlServerSagaStore(sql =>
{
sql.ConnectionString = connectionString;
sql.SchemaName = "dispatch";
sql.TableName = "sagas";
});
services.AddSqlServerSagaTimeoutStore(sql =>
{
sql.ConnectionString = connectionString;
sql.SchemaName = "dbo";
sql.TableName = "SagaTimeouts";
});
Database Schema
Run the SQL scripts in /sql/ folder to create required tables (defaults):
dispatch.sagas- Saga state storage with concurrency controldbo.SagaTimeouts- Saga timeouts for delayed execution
Related Packages
Excalibur.Saga- Core saga abstractionsExcalibur.Data.Abstractions- Data access patterns
License
This project is multi-licensed under:
See LICENSE for details.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. 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
- Azure.Identity (>= 1.17.1)
- Ben.Demystifier (>= 0.4.1)
- BenchmarkDotNet (>= 0.15.4)
- CloudNative.CloudEvents (>= 2.8.0)
- CloudNative.CloudEvents.SystemTextJson (>= 2.8.0)
- Cronos (>= 0.11.1)
- Dapper (>= 2.1.66)
- Excalibur.Data.Abstractions (>= 3.0.0-alpha.120)
- Excalibur.Dispatch.Abstractions (>= 3.0.0-alpha.120)
- Excalibur.Saga (>= 3.0.0-alpha.120)
- FluentValidation (>= 12.0.0)
- FluentValidation.DependencyInjectionExtensions (>= 12.0.0)
- IdentityModel (>= 7.0.0)
- JsonNet.ContractResolvers (>= 2.0.0)
- Medo.Uuid7 (>= 1.4.0)
- MemoryPack (>= 1.21.4)
- Microsoft.ApplicationInsights (>= 2.23.0)
- Microsoft.AspNetCore.Authorization (>= 9.0.9)
- Microsoft.CodeAnalysis.Analyzers (>= 3.11.0)
- Microsoft.CodeAnalysis.Common (>= 4.14.0)
- Microsoft.CodeAnalysis.CSharp (>= 4.14.0)
- Microsoft.Data.SqlClient (>= 6.1.1)
- Microsoft.Extensions.Caching.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Caching.Memory (>= 10.0.0)
- Microsoft.Extensions.Configuration (>= 10.0.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.0)
- Microsoft.Extensions.Configuration.CommandLine (>= 10.0.0)
- Microsoft.Extensions.Configuration.EnvironmentVariables (>= 10.0.0)
- Microsoft.Extensions.Configuration.Json (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Diagnostics.HealthChecks (>= 10.0.0)
- Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Hosting (>= 10.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Http (>= 10.0.0)
- Microsoft.Extensions.Logging (>= 10.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Logging.Console (>= 10.0.0)
- Microsoft.Extensions.ObjectPool (>= 10.0.0)
- Microsoft.Extensions.Options (>= 10.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.0)
- Microsoft.Extensions.Options.DataAnnotations (>= 10.0.0)
- Microsoft.IdentityModel.Tokens (>= 8.14.0)
- Polly (>= 8.6.4)
- System.IdentityModel.Tokens.Jwt (>= 8.14.0)
- System.Threading.RateLimiting (>= 10.0.0)
-
net8.0
- Azure.Identity (>= 1.17.1)
- Ben.Demystifier (>= 0.4.1)
- BenchmarkDotNet (>= 0.15.4)
- CloudNative.CloudEvents (>= 2.8.0)
- CloudNative.CloudEvents.SystemTextJson (>= 2.8.0)
- Cronos (>= 0.11.1)
- Dapper (>= 2.1.66)
- Excalibur.Data.Abstractions (>= 3.0.0-alpha.120)
- Excalibur.Dispatch.Abstractions (>= 3.0.0-alpha.120)
- Excalibur.Saga (>= 3.0.0-alpha.120)
- FluentValidation (>= 12.0.0)
- FluentValidation.DependencyInjectionExtensions (>= 12.0.0)
- IdentityModel (>= 7.0.0)
- JsonNet.ContractResolvers (>= 2.0.0)
- Medo.Uuid7 (>= 1.4.0)
- MemoryPack (>= 1.21.4)
- Microsoft.ApplicationInsights (>= 2.23.0)
- Microsoft.AspNetCore.Authorization (>= 9.0.9)
- Microsoft.CodeAnalysis.Analyzers (>= 3.11.0)
- Microsoft.CodeAnalysis.Common (>= 4.14.0)
- Microsoft.CodeAnalysis.CSharp (>= 4.14.0)
- Microsoft.Data.SqlClient (>= 6.1.1)
- Microsoft.Extensions.Caching.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Caching.Memory (>= 10.0.0)
- Microsoft.Extensions.Configuration (>= 10.0.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.0)
- Microsoft.Extensions.Configuration.CommandLine (>= 10.0.0)
- Microsoft.Extensions.Configuration.EnvironmentVariables (>= 10.0.0)
- Microsoft.Extensions.Configuration.Json (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Diagnostics.HealthChecks (>= 10.0.0)
- Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Hosting (>= 10.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Http (>= 10.0.0)
- Microsoft.Extensions.Logging (>= 10.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Logging.Console (>= 10.0.0)
- Microsoft.Extensions.ObjectPool (>= 10.0.0)
- Microsoft.Extensions.Options (>= 10.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.0)
- Microsoft.Extensions.Options.DataAnnotations (>= 10.0.0)
- Microsoft.IdentityModel.Tokens (>= 8.14.0)
- Polly (>= 8.6.4)
- System.Collections.Immutable (>= 10.0.0)
- System.Diagnostics.DiagnosticSource (>= 10.0.0)
- System.IdentityModel.Tokens.Jwt (>= 8.14.0)
- System.IO.Pipelines (>= 10.0.0)
- System.Text.Json (>= 10.0.0)
- System.Threading.Channels (>= 10.0.0)
- System.Threading.RateLimiting (>= 10.0.0)
-
net9.0
- Azure.Identity (>= 1.17.1)
- Ben.Demystifier (>= 0.4.1)
- BenchmarkDotNet (>= 0.15.4)
- CloudNative.CloudEvents (>= 2.8.0)
- CloudNative.CloudEvents.SystemTextJson (>= 2.8.0)
- Cronos (>= 0.11.1)
- Dapper (>= 2.1.66)
- Excalibur.Data.Abstractions (>= 3.0.0-alpha.120)
- Excalibur.Dispatch.Abstractions (>= 3.0.0-alpha.120)
- Excalibur.Saga (>= 3.0.0-alpha.120)
- FluentValidation (>= 12.0.0)
- FluentValidation.DependencyInjectionExtensions (>= 12.0.0)
- IdentityModel (>= 7.0.0)
- JsonNet.ContractResolvers (>= 2.0.0)
- Medo.Uuid7 (>= 1.4.0)
- MemoryPack (>= 1.21.4)
- Microsoft.ApplicationInsights (>= 2.23.0)
- Microsoft.AspNetCore.Authorization (>= 9.0.9)
- Microsoft.CodeAnalysis.Analyzers (>= 3.11.0)
- Microsoft.CodeAnalysis.Common (>= 4.14.0)
- Microsoft.CodeAnalysis.CSharp (>= 4.14.0)
- Microsoft.Data.SqlClient (>= 6.1.1)
- Microsoft.Extensions.Caching.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Caching.Memory (>= 10.0.0)
- Microsoft.Extensions.Configuration (>= 10.0.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.0)
- Microsoft.Extensions.Configuration.CommandLine (>= 10.0.0)
- Microsoft.Extensions.Configuration.EnvironmentVariables (>= 10.0.0)
- Microsoft.Extensions.Configuration.Json (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Diagnostics.HealthChecks (>= 10.0.0)
- Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Hosting (>= 10.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Http (>= 10.0.0)
- Microsoft.Extensions.Logging (>= 10.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Logging.Console (>= 10.0.0)
- Microsoft.Extensions.ObjectPool (>= 10.0.0)
- Microsoft.Extensions.Options (>= 10.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.0)
- Microsoft.Extensions.Options.DataAnnotations (>= 10.0.0)
- Microsoft.IdentityModel.Tokens (>= 8.14.0)
- Polly (>= 8.6.4)
- System.Diagnostics.DiagnosticSource (>= 10.0.0)
- System.IdentityModel.Tokens.Jwt (>= 8.14.0)
- System.IO.Pipelines (>= 10.0.0)
- System.Text.Json (>= 10.0.0)
- System.Threading.Channels (>= 10.0.0)
- System.Threading.RateLimiting (>= 10.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Excalibur.Saga.SqlServer:
| Package | Downloads |
|---|---|
|
Excalibur.SqlServer
Complete SQL Server metapackage for Excalibur: event sourcing, outbox, inbox, sagas, leader election, audit logging, compliance, and data access in a single package reference. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.0.0-alpha.120 | 0 | 4/8/2026 |
| 3.0.0-alpha.118 | 0 | 4/8/2026 |
| 3.0.0-alpha.85 | 44 | 4/3/2026 |
| 3.0.0-alpha.84 | 48 | 3/31/2026 |
| 3.0.0-alpha.83 | 37 | 3/31/2026 |
| 3.0.0-alpha.82 | 38 | 3/31/2026 |
| 3.0.0-alpha.80 | 46 | 3/30/2026 |
| 3.0.0-alpha.79 | 44 | 3/29/2026 |
| 3.0.0-alpha.76 | 42 | 3/29/2026 |
| 3.0.0-alpha.75 | 45 | 3/27/2026 |
| 3.0.0-alpha.74 | 42 | 3/27/2026 |
| 3.0.0-alpha.70 | 42 | 3/26/2026 |
| 3.0.0-alpha.68 | 37 | 3/25/2026 |
| 3.0.0-alpha.66 | 37 | 3/25/2026 |
| 3.0.0-alpha.64 | 40 | 3/25/2026 |
| 3.0.0-alpha.62 | 39 | 3/24/2026 |
| 3.0.0-alpha.59 | 38 | 3/24/2026 |
| 3.0.0-alpha.51 | 44 | 3/19/2026 |
| 3.0.0-alpha.48 | 45 | 3/18/2026 |
| 3.0.0-alpha.45 | 40 | 3/17/2026 |