FluxFlow.Nodes 4.0.0

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

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:

  • FlowContent stores exact owned immutable bytes plus optional content type and encoding. Its versioned JSON representation preserves the exact bytes.
  • FlowError carries 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.

Version Downloads Last Updated
4.0.0 1,840 8/3/2026
1.2.0 1,242 7/3/2026
1.1.2 1,661 7/2/2026
1.0.0 829 6/19/2026

Owns the transport-neutral FluxFlow.Data namespace alongside the node foundation, removing a package boundary while preserving source-level type names.