WalFlow.Failover 0.1.0-alpha.alpha.20260708090623

This is a prerelease version of WalFlow.Failover.
dotnet add package WalFlow.Failover --version 0.1.0-alpha.alpha.20260708090623
                    
NuGet\Install-Package WalFlow.Failover -Version 0.1.0-alpha.alpha.20260708090623
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="WalFlow.Failover" Version="0.1.0-alpha.alpha.20260708090623" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="WalFlow.Failover" Version="0.1.0-alpha.alpha.20260708090623" />
                    
Directory.Packages.props
<PackageReference Include="WalFlow.Failover" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add WalFlow.Failover --version 0.1.0-alpha.alpha.20260708090623
                    
#r "nuget: WalFlow.Failover, 0.1.0-alpha.alpha.20260708090623"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package WalFlow.Failover@0.1.0-alpha.alpha.20260708090623
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=WalFlow.Failover&version=0.1.0-alpha.alpha.20260708090623&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=WalFlow.Failover&version=0.1.0-alpha.alpha.20260708090623&prerelease
                    
Install as a Cake Tool

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:

  • ILeaseStore
  • ILeaseControlledWorker

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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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