FluxFlow.Components.Routing
0.2.0-alpha.2
See the version list below for details.
dotnet add package FluxFlow.Components.Routing --version 0.2.0-alpha.2
NuGet\Install-Package FluxFlow.Components.Routing -Version 0.2.0-alpha.2
<PackageReference Include="FluxFlow.Components.Routing" Version="0.2.0-alpha.2" />
<PackageVersion Include="FluxFlow.Components.Routing" Version="0.2.0-alpha.2" />
<PackageReference Include="FluxFlow.Components.Routing" />
paket add FluxFlow.Components.Routing --version 0.2.0-alpha.2
#r "nuget: FluxFlow.Components.Routing, 0.2.0-alpha.2"
#:package FluxFlow.Components.Routing@0.2.0-alpha.2
#addin nuget:?package=FluxFlow.Components.Routing&version=0.2.0-alpha.2&prerelease
#tool nuget:?package=FluxFlow.Components.Routing&version=0.2.0-alpha.2&prerelease
FluxFlow.Components.Routing
Reusable expression-driven routing components for FluxFlow.
Nodes
| Node type | Shape | Purpose |
|---|---|---|
flow.switch |
Input → Result, Matched, Default, Errors |
Evaluates a route key expression and routes the original input by match status. |
flow.correlation |
Input → Matched, Timeouts, Errors |
Pairs request and response style messages by key and side expressions. |
The package does not choose an expression language. Applications provide one or
more IFlowExpressionEngine implementations during registration.
var registry = new RuntimeNodeFactoryRegistry()
.RegisterRoutingComponents(options => options
.UseExpressionEngine(appExpressionEngine)
.RegisterType<AppMessage>("app.message")
.UseContextFactory(new AppMessageContextFactory()));
Basic configuration:
{
"type": "flow.switch",
"inputType": "app.message",
"engine": "my-engine",
"expression": "category",
"routes": [ "priority", "standard" ],
"defaultRoute": "unknown"
}
Result emits FlowSwitchResult<TInput> so downstream links can inspect
RouteKey, Matched, and the original Value. Matched emits the original
input when the key is in routes. Default emits the original input when the
key is empty or not configured.
If routes is empty, every non-empty route key is treated as matched. This lets
hosts use the result envelope and link conditions without predeclaring every
route key.
Expression evaluation failures emit FlowError and the node continues
processing later messages.
Correlation
Use flow.correlation when a workflow receives related messages on one stream
and needs to pair them by key.
{
"type": "flow.correlation",
"inputType": "app.message",
"engine": "my-engine",
"keyExpression": "correlationId",
"sideExpression": "kind",
"requestSide": "request",
"responseSide": "response",
"timeoutMilliseconds": 30000,
"maxPending": 1024
}
Matched emits FlowCorrelationMatch<TInput> with the request, response, key,
timestamps, and elapsed time. Timeouts emits
FlowCorrelationTimeout<TInput> for unmatched pending inputs when the timeout
is observed before the next input, and for any remaining pending inputs when
the node completes.
Invalid keys, unsupported sides, duplicate same-side messages, expression
failures, and pending-capacity failures emit FlowError and the node continues
processing later messages.
Composition Guidance
Use this package as one part of a host-composed graph. See Component Composition for recommended host boundaries, package boundaries, and extraction timing.
| 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 (>= 0.5.0-alpha.1)
-
net8.0
- FluxFlow.Engine (>= 0.5.0-alpha.1)
- System.Threading.Tasks.Dataflow (>= 9.0.4)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on FluxFlow.Components.Routing:
| Package | Downloads |
|---|---|
|
FluxFlow.Components.Routing.Composition
Typed JSON routing registration and Designer metadata over host-owned selectors and clocks. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 7.0.0-rc.1 | 96 | 9/5/2026 |
| 6.0.1 | 176 | 8/3/2026 |
| 3.0.2 | 134 | 7/3/2026 |
| 3.0.1 | 183 | 7/2/2026 |
| 3.0.0 | 131 | 6/19/2026 |
| 2.0.0 | 151 | 6/18/2026 |
| 1.2.1 | 131 | 6/15/2026 |
| 1.2.0 | 434 | 6/12/2026 |
| 1.1.0 | 125 | 6/5/2026 |
| 1.0.0 | 132 | 6/4/2026 |
| 0.10.0-alpha.1 | 250 | 6/2/2026 |
| 0.9.0-alpha.1 | 79 | 6/2/2026 |
| 0.8.0-alpha.1 | 76 | 6/2/2026 |
| 0.7.0-alpha.1 | 69 | 6/2/2026 |
| 0.6.1-alpha.1 | 85 | 6/2/2026 |
| 0.6.0-alpha.1 | 96 | 6/2/2026 |
| 0.5.0-alpha.1 | 68 | 6/2/2026 |
| 0.4.0-alpha.1 | 74 | 6/2/2026 |
| 0.3.0-alpha.1 | 70 | 6/2/2026 |
| 0.2.0-alpha.2 | 73 | 6/2/2026 |
Adds flow.correlation for request and response pairing with timeout output.