FluxFlow.Engine.DurableOutput.TSql
2.0.0
See the version list below for details.
dotnet add package FluxFlow.Engine.DurableOutput.TSql --version 2.0.0
NuGet\Install-Package FluxFlow.Engine.DurableOutput.TSql -Version 2.0.0
<PackageReference Include="FluxFlow.Engine.DurableOutput.TSql" Version="2.0.0" />
<PackageVersion Include="FluxFlow.Engine.DurableOutput.TSql" Version="2.0.0" />
<PackageReference Include="FluxFlow.Engine.DurableOutput.TSql" />
paket add FluxFlow.Engine.DurableOutput.TSql --version 2.0.0
#r "nuget: FluxFlow.Engine.DurableOutput.TSql, 2.0.0"
#:package FluxFlow.Engine.DurableOutput.TSql@2.0.0
#addin nuget:?package=FluxFlow.Engine.DurableOutput.TSql&version=2.0.0
#tool nuget:?package=FluxFlow.Engine.DurableOutput.TSql&version=2.0.0
FluxFlow.Engine.DurableOutput.TSql
Production opt-in T-SQL storage for FluxFlow durable-output capture, delivery state with exact lease renewal, dead-letter inspection/replay, read-only operational status, and bounded terminal retention. The provider uses direct parameterized SQL and the existing durable-output contracts; it does not add an ORM or background delivery worker.
using FluxFlow.Engine.DurableOutput.TSql;
services.AddFluxFlowTSqlDurableOutput(options =>
{
options.ConnectionString = configuration.GetConnectionString("FluxFlowDurableOutput");
options.SchemaManagement = TSqlDurableOutputSchemaManagement.ValidateOnly;
});
Registration and service resolution do not connect to the database. The first store operation creates or validates schema according to SchemaManagement. Use CreateOrMigrate with a deployment identity permitted to create provider-owned objects, or ValidateOnly with a restricted runtime identity after deployment has prepared the schema.
The initial supported and tested target is SQL Server 2022 with locking read committed (READ_COMMITTED_SNAPSHOT OFF). Delivery is at-least-once, so downstream handlers and sinks must remain idempotent.
Long-running handlers use the core dispatcher's flat
LeaseRenewalInterval setting. Renewal changes only the current exact token's
unexpired lease-expiry columns through one parameterized compare-and-set update;
it adds no schema object, migration, worker, ORM, or provider setting.
The same singleton implements IDurableOutputStatusStore. Status reports
capture/delivery counts, unmaterialized records, readiness, and lease expiry in
one payload-free aggregate statement. It does not invoke schema management,
backfill delivery rows, or change persisted state.
IDurableOutputRetentionStore resolves to the same singleton. It selects only
old completed or dead-lettered delivery rows in one bounded locking transaction
and deletes their capture parents; the existing foreign-key cascade removes
delivery state atomically. No cleanup is scheduled automatically, and no new
schema object, ORM, or application option is introduced. Purging ends the
identity's idempotency or dead-letter replay window.
| 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 was computed. 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
- FluxFlow.Engine.DurableOutput (>= 3.0.0)
- Microsoft.Data.SqlClient (>= 7.0.2)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.7)
-
net8.0
- FluxFlow.Engine.DurableOutput (>= 3.0.0)
- Microsoft.Data.SqlClient (>= 7.0.2)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.7)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.0.0-rc.1 | 56 | 8/9/2026 |
| 2.0.0 | 108 | 8/3/2026 |
Breaking with core 3.0: implements exact-token lease renewal and cooperative blocked-command cancellation with direct parameterized SQL and no schema or dependency change.