FluxFlow.Nodes
4.0.0
dotnet add package FluxFlow.Nodes --version 4.0.0
NuGet\Install-Package FluxFlow.Nodes -Version 4.0.0
<PackageReference Include="FluxFlow.Nodes" Version="4.0.0" />
<PackageVersion Include="FluxFlow.Nodes" Version="4.0.0" />
<PackageReference Include="FluxFlow.Nodes" />
paket add FluxFlow.Nodes --version 4.0.0
#r "nuget: FluxFlow.Nodes, 4.0.0"
#:package FluxFlow.Nodes@4.0.0
#addin nuget:?package=FluxFlow.Nodes&version=4.0.0
#tool nuget:?package=FluxFlow.Nodes&version=4.0.0
FluxFlow.Nodes
Minimal standalone TPL Dataflow node foundation. Components can use it without Engine or Composition.
The package also owns the transport-neutral FluxFlow.Data namespace:
FlowContentstores exact owned immutable bytes plus optional content type and encoding. Its versioned JSON representation preserves the exact bytes.FlowErrorcarries a stable code, message, category, transient flag, and optional detached JSON details as ordinary workflow data.
The namespace deliberately remains FluxFlow.Data for source compatibility,
but these types now compile into the FluxFlow.Nodes assembly. Namespace and
assembly identity are separate concerns; consumers should reference only the
FluxFlow.Nodes package. No forwarding assembly or compatibility package is
provided.
Message Contract
FlowMessage<T> contains exactly one typed value or FlowError, together with
TraceId, MessageId, optional CausationId/CorrelationId, timestamp, and
immutable ordinal string headers.
var input = FlowMessage.Create("hello");
FlowMessage<int> output = input.With(input.Value.Length);
FlowMessage<int> failure = input.WithError<int>(
new FlowError("text.invalid", "Invalid text.", "validation"));
Derived messages preserve trace, correlation, and headers, create a new message identity, and point causation at the preceding message.
Node Contract
FlowNode<TInput,TOutput> provides bounded Input, reliable bounded Output,
best-effort Events, Completion, and async disposal. Incoming errors are
propagated without invoking normal business processing. Exceptions from
per-message processing become FlowError output data. Override HandlesErrors
only for deliberate recovery, routing, logging, or translation components.
One bounded processing block owns intake and execution. A separate bounded reliable output applies downstream backpressure. Accepted normal data drains before completion, while event observers remain outside the reliable path.
FlowSource<T> provides reliable bounded Output, best-effort Events, one-start
lifecycle, and cancellation-aware completion. There is no universal Errors
port. Unrecoverable lifecycle or delivery faults remain observable on
Completion.
Reliable fan-out shares accepted immutable messages; FluxFlow does not deep-clone arbitrary user payloads. The guarantee is in-process only and does not provide persistence, replay, or crash recovery.
Configure standalone instances with immutable options:
var nodeOptions = new FlowNodeOptions
{
InputCapacity = 64,
OutputCapacity = 128
};
var sourceOptions = new FlowSourceOptions { OutputCapacity = 256 };
Primary and extra node outputs use FlowNodeOptions.OutputCapacity. Fluent
graph builders link already configured instances and do not override these
values. Canonical component builders and Engine stable ports have separate
capacity scopes described in docs/24-reliable-in-process-delivery.md.
| 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
- No dependencies.
-
net8.0
- System.Threading.Tasks.Dataflow (>= 9.0.4)
NuGet packages (29)
Showing the top 5 NuGet packages that depend on FluxFlow.Nodes:
| Package | Downloads |
|---|---|
|
FluxFlow.Engine
Canonical FluxFlow application runtime assembler with transactional revisions, stable addressable ports, conditional routing, system events, and diagnostics. |
|
|
FluxFlow.Components.Mqtt
Transport-neutral MQTT client orchestration and standalone FluxFlow components for commands, publish, receive, workflow acknowledgement, and client events. No engine or concrete MQTT client required. |
|
|
FluxFlow.Composition
Canonical FluxFlow application definitions, addressing, link compilation, component registration contracts, and keyed resource registration without depending on FluxFlow.Engine. |
|
|
FluxFlow.Components.Routing
Standalone typed Window, Correlation, and Join nodes for FluxFlow, including explicit JSON specializations. |
|
|
FluxFlow.Components.Storage
Standalone logical-storage nodes with exact FlowContent operations and normal typed results over host-owned stores. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Owns the transport-neutral FluxFlow.Data namespace alongside the node foundation, removing a package boundary while preserving source-level type names.