FluxFlow.Components.Sessions
1.1.0
dotnet add package FluxFlow.Components.Sessions --version 1.1.0
NuGet\Install-Package FluxFlow.Components.Sessions -Version 1.1.0
<PackageReference Include="FluxFlow.Components.Sessions" Version="1.1.0" />
<PackageVersion Include="FluxFlow.Components.Sessions" Version="1.1.0" />
<PackageReference Include="FluxFlow.Components.Sessions" />
paket add FluxFlow.Components.Sessions --version 1.1.0
#r "nuget: FluxFlow.Components.Sessions, 1.1.0"
#:package FluxFlow.Components.Sessions@1.1.0
#addin nuget:?package=FluxFlow.Components.Sessions&version=1.1.0
#tool nuget:?package=FluxFlow.Components.Sessions&version=1.1.0
FluxFlow.Components.Sessions
Reusable session recording and replay components for FluxFlow.
Nodes
| Node type | Shape | Purpose |
|---|---|---|
session.recorder |
Input → Output, Errors |
Records incoming messages into a host-provided session store. |
session.replay |
Output, Errors |
Replays stored session messages as a source stream. |
session.query |
Input → Output, Sessions, Errors |
Queries session metadata from a host-provided session store. |
Storage
The package owns the recording and replay contracts, but storage is injected by
the host through ISessionStoreFactory. This keeps database paths, schemas,
workspace ownership, and retention policy outside the component package.
registry.RegisterSessionsComponents(options =>
options.UseStore(context => new MySessionStore(context.StoreName)));
Hosts that need deterministic recording or replay timing can provide a clock:
registry.RegisterSessionsComponents(options => options
.UseStore(context => new MySessionStore(context.StoreName))
.UseClock(sessionClock));
Recorder
{
"type": "session.recorder",
"name": "recorder",
"store": "default",
"sessionId": "sample-session",
"boundedCapacity": 128,
"tags": {
"source": "demo"
}
}
session.recorder consumes SessionRecordInput and emits the stored
SessionRecord returned by the store. Startup opens the session. Completion
closes the session with the final message count.
UseClock(...) controls session start/end timestamps and default message
timestamps when SessionRecordInput.Timestamp is not set.
Replay
{
"type": "session.replay",
"name": "replay",
"store": "default",
"sessionId": "sample-session",
"mode": "instant",
"boundedCapacity": 128
}
Replay modes:
instant: emit records without delay.fixedInterval: waitfixedIntervalMillisecondsbetween records.realTime: use timestamp deltas from the stored records.multiplier: use timestamp deltas divided byspeedMultiplier.
startSequence and maxMessages can limit the replay range.
UseClock(...) controls replay delays for fixed interval, real-time, and
multiplier modes. Without it, sessions use the system clock.
Query
{
"type": "session.query",
"name": "query",
"store": "default",
"namePrefix": "sample",
"limit": 100,
"boundedCapacity": 128
}
session.query consumes SessionQueryRequest and emits SessionQueryResult
on Output. When emitSessionOutputs is enabled, each matching
SessionMetadata is also emitted on Sessions.
The request can filter by name, name prefix, tags, started/ended ranges, active
or completed status, and limit. Query failures are emitted through Errors and
later requests continue.
Contracts
The package includes:
SessionRecordInputSessionRecordSessionMetadataSessionQueryRequestSessionQueryResultISessionStoreISessionStoreFactoryISessionClock
Records carry neutral fields: session id, sequence, timestamp, type, name, payload, content type, and string attributes. Hosts can map their own envelope or event types into these contracts.
Design Metadata
This package exposes a package-owned IComponentDesignMetadataProvider for its
node types. Hosts can compose it through ComponentDesignMetadataCatalog to
populate palettes, editors, validation views, and documentation without
duplicating package descriptors.
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.Components.Designer (>= 1.0.1)
- FluxFlow.Engine (>= 1.0.1)
-
net8.0
- FluxFlow.Components.Designer (>= 1.0.1)
- FluxFlow.Engine (>= 1.0.1)
- System.Threading.Tasks.Dataflow (>= 9.0.4)
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 |
|---|---|---|
| 1.1.0 | 41 | 6/5/2026 |
| 1.0.0 | 50 | 6/4/2026 |
| 0.3.0-alpha.1 | 102 | 6/2/2026 |
| 0.2.0-alpha.1 | 45 | 6/2/2026 |
| 0.1.1-alpha.1 | 44 | 6/2/2026 |
| 0.1.0-alpha.1 | 98 | 6/1/2026 |
Adds package-owned IComponentDesignMetadataProvider metadata for host palettes, editors, validation views, generated docs, and catalog composition while keeping runtime behavior unchanged.