Soenneker.Flywheel.Redis 5.0.33

Prefix Reserved
dotnet add package Soenneker.Flywheel.Redis --version 5.0.33
                    
NuGet\Install-Package Soenneker.Flywheel.Redis -Version 5.0.33
                    
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="Soenneker.Flywheel.Redis" Version="5.0.33" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Soenneker.Flywheel.Redis" Version="5.0.33" />
                    
Directory.Packages.props
<PackageReference Include="Soenneker.Flywheel.Redis" />
                    
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 Soenneker.Flywheel.Redis --version 5.0.33
                    
#r "nuget: Soenneker.Flywheel.Redis, 5.0.33"
                    
#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 Soenneker.Flywheel.Redis@5.0.33
                    
#: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=Soenneker.Flywheel.Redis&version=5.0.33
                    
Install as a Cake Addin
#tool nuget:?package=Soenneker.Flywheel.Redis&version=5.0.33
                    
Install as a Cake Tool

NuGet Publish Downloads Build and test CodeQL

Soenneker.Flywheel.Suite

Background jobs, Redis storage, source generators, and a live Blazor dashboard in one solution.

Background work. Everything in view.

Queue a typed job, coordinate workers across instances, and follow each execution in the live Blazor dashboard.

Flywheel dashboard with live activity, job states, and searchable executions

The optional Flywheel Dashboard, shown with illustrative demo data.

Explore Flywheel · Dashboard · Run the demo

Packages

Each project produces its own NuGet package. The suite is the repository and solution, not a combined runtime package.

Package Responsibility Flywheel dependencies
Soenneker.Flywheel.Communication Shared job DTOs, policies, enums, requests, responses, and typed hub contracts No Flywheel dependencies
Soenneker.Flywheel.Core Job runtime, dashboard API, and hub Communication
Soenneker.Flywheel.Redis Redis job storage Core
Soenneker.Flywheel.Generators Compile-time job registration None; analyzer only
Soenneker.Flywheel.Dashboard Blazor components, typed consumer, and live client Communication

Dashboard does not bring Redis or the server runtime into WebAssembly. Projects reference each other directly in this solution; NuGet packing converts those references into separate package dependencies.

Run once for the current application version

From the hosting application, submit a registered job through IJobClient:

await jobs.EnqueueForCurrentVersion(job, payload);

Flywheel automatically identifies the hosting application build and creates one shared job per job name and build within the Redis namespace. Only engines running that exact build can claim it, so older application instances in warmup slots skip the job. The submission marker survives completed-job cleanup; normal retries and lease recovery still apply, so handlers must be idempotent.

See version-specific jobs for build identity overrides and execution semantics.

One demo

Install .NET 10 and run Redis 6.0.9 or newer on localhost:6379, then:

dotnet dev-certs https --trust
dotnet run --project test/Soenneker.Flywheel.Demo

In a second terminal, run dotnet run --project test/Soenneker.Flywheel.Dashboard.Demo. Open https://localhost:7039/ and sign in with admin / flywheel-demo in Development. The engine/API runs at https://localhost:7443/ and the dashboard runs separately. The solution's Demo startup configuration starts both and opens only the dashboard browser. Stop both with Ctrl+C. See demo configuration.

Development

dotnet build Soenneker.Flywheel.Suite.slnx
dotnet test --project test/Soenneker.Flywheel.Dashboard.Tests

Redis integration tests use FLYWHEEL_TEST_REDIS, defaulting to localhost:6379. Manual Redis benchmarks live in the Redis test project and are excluded from normal test runs. The product website is included under src/Soenneker.Flywheel.Website. Its separate website workflow exports and deploys the static site to Cloudflare; see website development and deployment.

Dashboard pages use Lepton lifecycle management. A typed consumer handles API calls through the Flywheel API client, while a shared live client owns SignalR connections and subscriptions. Shared communication contracts keep the server and dashboard aligned. HomePath controls dashboard navigation; EnginePath independently controls API, authentication, and SignalR routes and must match on the backend and client. Either prefix can be / or a custom path. See prefix configuration.

Releases

JSON contracts use explicit camelCase property names and Soenneker.Utils.Json. See JSON storage contracts.

build-and-test.yml builds the entire solution, runs the four test projects with Redis, publishes the hosted demo, and packs five separate packages. publish-package.yml calls that validation workflow and then runs a deployment matrix with one job per package, publishing to NuGet and GitHub Packages. A GitHub release is created only after every deployment succeeds.

All packages share 5.0.<publish workflow run number>. Local builds default to 5.0.0; BUILD_VERSION overrides it. The 5.0 series avoids collisions with independently versioned 4.0 releases and reflects the move of shared job and dashboard contracts into Soenneker.Flywheel.Communication. Update imports for DTOs, enums, requests, responses, and log DTOs from Soenneker.Flywheel.Core to Soenneker.Flywheel.Communication. The storage server snapshot is now Communication.Responses.WorkerServerView; the dashboard response remains Communication.Responses.ServerView.

Documentation

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

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
5.0.33 0 9/11/2026
5.0.32 0 9/11/2026
5.0.31 0 9/11/2026
5.0.30 0 9/11/2026
5.0.29 0 9/11/2026
5.0.28 27 9/11/2026
5.0.27 37 9/11/2026
5.0.26 55 9/10/2026
5.0.25 56 9/10/2026
5.0.24 60 9/10/2026
5.0.23 58 9/10/2026
5.0.22 66 9/10/2026
5.0.21 75 9/9/2026
5.0.12 93 9/9/2026
5.0.8 77 9/8/2026
5.0.7 79 9/8/2026
5.0.4 87 9/8/2026
5.0.3 83 9/8/2026
4.0.23 70 9/8/2026
4.0.22 82 9/8/2026
Loading failed