Namespace FlowOrchestrator.Core.Notifications
Classes
- FlowLifecycleEvent
Base type for all flow lifecycle events published through IFlowEventNotifier. Subtypes carry a constant Type discriminator string used as the SSE
event:field name and as a tag for log/metric pipelines.
- NoopFlowEventNotifier
Default IFlowEventNotifier implementation that discards every event. Registered when no realtime consumer (e.g. the dashboard's SSE broadcaster) is wired in, so apps that never opt in pay zero overhead — PublishAsync(FlowLifecycleEvent, CancellationToken) returns a completed ValueTask with no allocation.
- RunCompletedEvent
Emitted when the run reaches a terminal state. The status field captures the outcome —
Succeeded,Failed,Skipped, orCancelled; no separateRunCancelledevent exists.
- RunStartedEvent
Emitted once per successful
TriggerAsyncafter the run row is persisted.
- StepCompletedEvent
Emitted whenever a step transitions to a terminal status (Succeeded / Failed / Skipped).
- StepRetriedEvent
Emitted when a step is queued for retry via
RetryStepAsync.
Interfaces
- IFlowEventNotifier
Publishes flow lifecycle events for realtime consumers (dashboard SSE, log sinks, custom listeners). Implementations MUST be non-blocking: the engine awaits this on its hot path, so any backing transport should buffer (e.g. Channel) and return synchronously.