WalFlow.Failover
0.1.0-alpha.alpha.20260708090623
dotnet add package WalFlow.Failover --version 0.1.0-alpha.alpha.20260708090623
NuGet\Install-Package WalFlow.Failover -Version 0.1.0-alpha.alpha.20260708090623
<PackageReference Include="WalFlow.Failover" Version="0.1.0-alpha.alpha.20260708090623" />
<PackageVersion Include="WalFlow.Failover" Version="0.1.0-alpha.alpha.20260708090623" />
<PackageReference Include="WalFlow.Failover" />
paket add WalFlow.Failover --version 0.1.0-alpha.alpha.20260708090623
#r "nuget: WalFlow.Failover, 0.1.0-alpha.alpha.20260708090623"
#:package WalFlow.Failover@0.1.0-alpha.alpha.20260708090623
#addin nuget:?package=WalFlow.Failover&version=0.1.0-alpha.alpha.20260708090623&prerelease
#tool nuget:?package=WalFlow.Failover&version=0.1.0-alpha.alpha.20260708090623&prerelease
WalFlow.Failover
Lease-based active-passive failover coordinator for WalFlow workers.
Only the WalFlow worker is started/stopped on lease transitions; the host server process keeps running.
Registration
services.AddWalFlowFailover(opt =>
{
opt.LeaseName = "walflow-postgres";
opt.LeaseDuration = TimeSpan.FromSeconds(30);
opt.RenewInterval = TimeSpan.FromSeconds(10);
opt.AcquireRetryInterval = TimeSpan.FromSeconds(5);
});
You must separately register:
ILeaseStoreILeaseControlledWorker
Startup Election And Standby
Use startup election + standby to avoid hammering the lease store when several API nodes boot at once.
services.AddWalFlowFailover(opt =>
{
opt.StartupBehavior = LeaseStartupBehavior.SingleElectionThenStandby;
opt.StartupElectionWindow = TimeSpan.FromSeconds(20);
opt.StandbyPollInterval = TimeSpan.FromSeconds(10);
});
Behavior:
- Nodes compete during
StartupElectionWindow. - Winner runs WalFlow.
- Losers stop aggressive acquire retries and enter standby observation.
- Standby nodes resume competing only when the active lease disappears/expires.
Fast Startup Takeover (Handover Protocol)
Enable startup hijack to ask the current owner to release WalFlow lease quickly:
services.AddWalFlowFailover(opt =>
{
opt.EnableHandoverProtocol = true;
opt.TryHijackLeaseOnStartup = true;
opt.StartupHijackWindow = TimeSpan.FromSeconds(10);
opt.HandoverPollInterval = TimeSpan.FromMilliseconds(200);
opt.RequireHandoverAcknowledgement = true;
opt.HandoverAcknowledgementTimeout = TimeSpan.FromSeconds(5);
});
Protocol details are documented in LEASE_HANDOVER_PROTOCOL.md.
Lease Store Packages
WalFlow.Failover.Postgres: production/distributed coordination with PostgreSQL.WalFlow.Failover.Redis: production/distributed coordination with Redis.WalFlow.Failover.InMemory: process-local coordination for local development and tests.
| 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.Extensions.Configuration (>= 10.0.9)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.9)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.9)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.9)
- Microsoft.Extensions.Diagnostics.Abstractions (>= 10.0.9)
- Microsoft.Extensions.FileProviders.Abstractions (>= 10.0.9)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.9)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.9)
- Microsoft.Extensions.Options (>= 10.0.9)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.9)
- WalFlow.Abstractions (>= 0.1.0-alpha.alpha.20260708090623)
NuGet packages (4)
Showing the top 4 NuGet packages that depend on WalFlow.Failover:
| Package | Downloads |
|---|---|
|
WalFlow.Failover.Postgres
PostgreSQL lease store and worker adapter plugin for WalFlow failover. |
|
|
WalFlow.Hosting.AspNetCore
ASP.NET registration helpers for WalFlow failover and SMT middleware pipeline wiring. |
|
|
WalFlow.Failover.Redis
Redis lease store plugin for WalFlow failover coordination. |
|
|
WalFlow
Meta-package that pulls in the full WalFlow CDC stack for consumers who want the default everything-included setup. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-alpha.alpha... | 112 | 7/8/2026 |
| 0.1.0-alpha.alpha... | 95 | 3/30/2026 |