Namespace FlowOrchestrator.Core.Storage
Classes
- DashboardStatistics
Aggregate counts displayed on the dashboard overview panel. Returned by GetStatisticsAsync().
- FlowDefinitionRecord
Persisted representation of a flow definition stored in the database or in-memory store. The ManifestJson column holds the serialised FlowManifest.
- FlowEvent
In-memory event raised during a flow run execution. Events are persisted via RecordEventAsync(IExecutionContext, IFlowDefinition, IStepInstance, FlowEvent) and stored as FlowEventRecord when event persistence is enabled.
- FlowEventRecord
Persisted representation of a FlowEvent, with a monotonically increasing sequence number for ordered retrieval via IFlowEventReader.
- FlowRepositoryExtensions
Helper for the dispatch-hot-path "find a flow by id" pattern.
- FlowRunControlRecord
Control-plane state for a run: timeout deadline, cancellation request, and idempotency key. Written before the run starts and polled by step handlers to honour cancellation signals.
- FlowRunRecord
Persisted record of a single flow run execution, including overall status and an optional list of step records (populated by GetRunDetailAsync(Guid)).
- FlowScheduleState
Persisted schedule override state for a Hangfire recurring job. Allows the dashboard to pause/resume schedules and override cron expressions without modifying the code-defined flow manifest.
- FlowSignalWaiter
Persisted record of a
WaitForSignalstep that is currently parked, awaiting an external signal. One row per (RunId, StepKey).
- FlowStepAttemptRecord
Immutable audit record for a single execution attempt of a step. Multiple attempts are created when a step is retried via the dashboard.
- FlowStepRecord
Persisted state of a single step within a flow run, including its latest execution outcome and the full attempt history.
- OutputsRepositoryTypedExtensions
Extension methods for retrieving strongly-typed step outputs and trigger data from an IOutputsRepository.
- RunTimeseriesBucket
One bucket in a run timeseries query. Counts are by terminal status; Running captures runs whose start falls in the bucket but which have not yet completed. Duration percentiles are computed across runs that have completed (CompletedAt is non-null) and started inside the bucket.
- TimeseriesAggregator
In-memory bucket aggregator used by SQL store implementations to compute RunTimeseriesBucket series after streaming raw run rows back from the database. Doing percentiles in client code is significantly cheaper than asking SQL Server / PostgreSQL to evaluate
PERCENTILE_CONTacross a few thousand rows.
- WebhookRejectionPage
Paged result from QueryAsync(WebhookRejectionQuery, CancellationToken).
- WebhookRejectionQuery
Filter + pagination shape for QueryAsync(WebhookRejectionQuery, CancellationToken). All fields are optional; defaults return the most recent 50 rows including accepted entries.
- WebhookRejectionRecord
One row in the webhook delivery log. Persisted by IWebhookRejectionStore for both rejected and accepted deliveries; the IsAccepted flag distinguishes the two.
Structs
Interfaces
- IFlowEventReader
Read-only interface for retrieving the ordered event log of a flow run. Implemented alongside IOutputsRepository by storage backends that support event persistence.
- IFlowRepository
Read-only interface for retrieving code-registered flow definitions. The default implementation lives in
FlowOrchestrator.InMemory.InMemoryFlowRepositoryand is populated at startup byFlowSyncHostedServicefrom the flows registered viaAddFlow<T>().
- IFlowRetentionStore
Data cleanup contract called periodically by
FlowRetentionHostedServiceto remove runs, steps, outputs, and events older than the configured TTL.
- IFlowRunControlStore
Persistence contract for run-level control signals: cancellation, timeout, and idempotency. Decoupled from IFlowRunStore so control records can be written before the run is committed.
- IFlowRunRuntimeStore
Runtime step-tracking store used by the orchestrator during execution to prevent duplicate step enqueuing in parallel/fan-out scenarios.
- IFlowRunStore
Persistence contract for flow run lifecycle: creating runs, recording step progress, completing runs, and querying run history.
- IFlowScheduleStateStore
Persists per-job schedule overrides (pause state and cron expression overrides) so they survive process restarts when
FlowSchedulerOptions.PersistOverridesis enabled.
- IFlowSignalStore
Persistence contract for
WaitForSignalstep waiters: parked steps that resume only when an external signal is delivered via the dashboard signal endpoint or programmatic call.
- IFlowStore
Persistence contract for flow definitions. Implementations are provided by
UseSqlServer,UsePostgreSql, andUseInMemory.
- IOutputsRepository
Stores and retrieves per-run step outputs, trigger data, and events. Outputs are keyed by RunId + step key and resolved at expression-evaluation time to satisfy
@outputs('stepKey')references in downstream steps.
- IWebhookRejectionStore
Persistence contract for the webhook receive log + DLQ. Stores both rejected (IsAccepted false) and accepted entries so the dashboard can render a unified recent-deliveries table with precise reason chips.
- IWebhookReplayStore
Persistence contract for webhook replay-attack protection. Maintains a set of
(flowId, triggerKey, nonce)tuples with expiry; a successful registration means the nonce has not been seen before, a conflict means a replay attack is in progress.
Enums
- RunTimeseriesGranularity
Bucket size for a run timeseries query.
- SignalDeliveryStatus
Outcome of a DeliverSignalAsync(Guid, string, string, CancellationToken) attempt.