FluxFlow.Engine.DurableOutput.TSql
4.0.0-rc.2
dotnet add package FluxFlow.Engine.DurableOutput.TSql --version 4.0.0-rc.2
NuGet\Install-Package FluxFlow.Engine.DurableOutput.TSql -Version 4.0.0-rc.2
<PackageReference Include="FluxFlow.Engine.DurableOutput.TSql" Version="4.0.0-rc.2" />
<PackageVersion Include="FluxFlow.Engine.DurableOutput.TSql" Version="4.0.0-rc.2" />
<PackageReference Include="FluxFlow.Engine.DurableOutput.TSql" />
paket add FluxFlow.Engine.DurableOutput.TSql --version 4.0.0-rc.2
#r "nuget: FluxFlow.Engine.DurableOutput.TSql, 4.0.0-rc.2"
#:package FluxFlow.Engine.DurableOutput.TSql@4.0.0-rc.2
#addin nuget:?package=FluxFlow.Engine.DurableOutput.TSql&version=4.0.0-rc.2&prerelease
#tool nuget:?package=FluxFlow.Engine.DurableOutput.TSql&version=4.0.0-rc.2&prerelease
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 (>= 5.0.0-rc.2)
- Microsoft.Data.SqlClient (>= 7.0.2)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.7)
-
net8.0
- FluxFlow.Engine.DurableOutput (>= 5.0.0-rc.2)
- 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 |
|---|---|---|
| 4.0.0-rc.2 | 90 | 9/5/2026 |
| 3.0.0-rc.1 | 92 | 8/9/2026 |
| 2.0.0 | 144 | 8/3/2026 |
Breaking dependency upgrade: rebuilt for the canonical runtime and event contracts. Adopt the coordinated package set and recompile consumers; no legacy compatibility transport is provided. Requires the corrected passive-observation runtime candidate.