Table of Contents

Interface IPollableInput

Namespace
FlowOrchestrator.Core.Execution
Assembly
FlowOrchestrator.Core.dll

Marks a step input POCO as supporting the polling pattern. When implemented, the PollableStepHandler<TInput> base class manages retry scheduling, timeout enforcement, and condition evaluation automatically.

public interface IPollableInput

Properties

PollAttempt

Running count of poll attempts for this step invocation. Managed by the base class — do not set this manually.

int? PollAttempt { get; set; }

Property Value

int?

PollConditionEquals

The expected value at PollConditionPath. Comparison is case-insensitive string equality. When null, the condition succeeds as soon as the path resolves to a non-empty value.

object? PollConditionEquals { get; }

Property Value

object

PollConditionPath

Dot-notation JSON path evaluated against the fetch result to locate the value to compare (e.g. "status" or "result.state"). When null, the full payload is tested for non-empty content.

string? PollConditionPath { get; }

Property Value

string

PollEnabled

When true, the base class checks the poll condition and reschedules via Hangfire delay until it is met or the timeout expires. When false, the handler executes exactly once regardless of the result.

bool PollEnabled { get; }

Property Value

bool

PollIntervalSeconds

Seconds to wait between poll attempts. Minimum effective value is 1.

int PollIntervalSeconds { get; }

Property Value

int

PollMinAttempts

Minimum number of successful fetch attempts required before the condition is evaluated. Prevents false positives on the very first response.

int PollMinAttempts { get; }

Property Value

int

PollStartedAtUtc

ISO 8601 timestamp recorded on the first poll attempt; used to track total elapsed time. Managed by the base class — do not set this manually.

string? PollStartedAtUtc { get; set; }

Property Value

string

PollTimeoutSeconds

Maximum total seconds to keep polling before the step is marked Failed. Must be greater than or equal to PollIntervalSeconds.

int PollTimeoutSeconds { get; }

Property Value

int