Table of Contents

Class WorkflowCursor

Namespace
Millrace.Workflows
Assembly
Millrace.dll

The engine's position in a graph, persisted alongside the data document.

public sealed record WorkflowCursor : IEquatable<WorkflowCursor>
Inheritance
WorkflowCursor
Implements
Inherited Members

Remarks

A single pointer is not enough: Parallel and ForEach put several activities in flight at once, and the sequence after them may not resume until every one has finished. So the cursor tracks open Joins rather than one current node — each a countdown with the node to continue from once it reaches zero.

Where the instance is *right now* lives in the dispatched jobs themselves, each carrying its own node id. The cursor holds only what no single job can know: how many siblings are still outstanding.

Properties

Completed

True once no activity remains in flight and no join is open.

HasOpenJoins

Whether any fan-out is still waiting on branches.

Joins

Open fan-outs, keyed by the id of the node that opened them.

Sagas

Open sagas, keyed by the saga node's id.

Waits

Open signal waits, keyed signalName|correlationId.

Methods

WaitKey(string, string)

The key a wait is stored under.