DurableTaskWorkerDecisionKind Kind { get; }
Source
Gets the decision kind.
Maps durable worker projection contract results into Durable Task-facing decisions.
TWorkType of work carried by the chain.TResultType of terminal execution result.TProjectionType of visible projection repaired from terminal facts.The runner is an adapter, not a hosted runtime. It calls the app-owned projection contract and returns decisions for host-owned Durable Task orchestration code to interpret. It never invokes IDurableWorkerExecutor{TWork,TResult} from projection repair methods. The expected stage order is IDurableTaskWorkerChainRunner{TWork,TResult,TProjection}.TryClaimAsync before executor activity, IDurableTaskWorkerChainRunner{TWork,TResult,TProjection}.CompleteAsync after terminal executor activity, then IDurableTaskWorkerChainRunner{TWork,TResult,TProjection}.ReconcileProjectionAsync for visible-state repair. Retry policies carried by decisions are advisory metadata; hosts translate them into Durable Task retry options, timers, or activity scheduling behavior.
ValueTask<DurableTaskWorkerDecision<TWork, TResult, TProjection>> TryClaimAsync(IDurableWorkerProjectionContract<TWork, TResult, TProjection> contract, TWork work, DurableWorkerCorrelation correlation, CancellationToken cancellationToken = default)
Source
Attempts to claim work and maps the claim result to a Durable Task-facing decision.
contractApp-owned projection contract.workTyped work payload.correlationCorrelation identifiers for the claim.cancellationTokenToken that cancels the claim.A durable decision. Valid claim outcomes are claimed, already-completed, noop, stale-fence, conflict, and unrecoverable. Claimed schedules executor activity; duplicate, noop, stale, and failure outcomes do not.
ValueTask<DurableTaskWorkerDecision<TWork, TResult, TProjection>> CompleteAsync(IDurableWorkerProjectionContract<TWork, TResult, TProjection> contract, TWork work, TResult result, DurableWorkerCorrelation correlation, CancellationToken cancellationToken = default)
Source
Records completion and maps the terminal fact to projection repair or terminal decisions.
contractApp-owned projection contract.workTyped work payload.resultTerminal result produced by executor activity.correlationCorrelation identifiers for the completion fact.cancellationTokenToken that cancels completion recording.A durable decision. Valid completion outcomes are completed, already-completed, noop, stale-fence, conflict, and unrecoverable. Fresh completion schedules projection repair; duplicate and noop completion do not.
ValueTask<DurableTaskWorkerDecision<TWork, TResult, TProjection>> ReconcileProjectionAsync(IDurableWorkerProjectionContract<TWork, TResult, TProjection> contract, TWork work, TResult result, DurableWorkerCorrelation correlation, CancellationToken cancellationToken = default)
Source
Repairs projection state from a terminal fact and maps the result to a Durable Task-facing decision.
contractApp-owned projection contract.workTyped work payload associated with the terminal fact.resultTerminal result used to repair projection state.correlationCorrelation identifiers for the repair attempt.cancellationTokenToken that cancels projection repair.A durable decision. Valid projection outcomes are reconciled, noop, stale-fence, conflict, and unrecoverable. Reconciled carries a projection payload; noop completes without a projection payload; projection repair never maps to executor scheduling.
DurableTaskWorkerDecision<TWork, TResult, TProjection> WaitForExternalEvent(DurableWorkerCorrelation correlation, string eventName, FlowTimeout? timeout = null)
Source
Creates an external-event wait decision for host-owned Durable Task orchestration code.
correlationCorrelation identifiers for the wait.eventNameExternal event name expected by the host.timeoutOptional durable timeout metadata.A wait-for-external-event decision.
DurableTaskWorkerDecision<TWork, TResult, TProjection> TimedOut(DurableWorkerCorrelation correlation, string eventName, DurableWorkerDiagnostic? diagnostic = null)
Source
Creates a timeout decision for a wait branch that expired.
correlationCorrelation identifiers for the timed-out wait.eventNameExternal event name whose wait expired.diagnosticOptional safe diagnostic details.A timed-out decision.
DurableTaskWorkerDecision<TWork, TResult, TProjection> IgnoreLateSignal(DurableWorkerCorrelation correlation, string eventName, DurableWorkerDiagnostic? diagnostic = null)
Source
Creates a stale or late signal decision without scheduling additional work.
correlationCorrelation identifiers for the stale signal.eventNameExternal event name associated with the stale signal.diagnosticOptional safe diagnostic details.An ignore-late-signal decision.
ArgumentExceptionThrown when eventName is null, empty, or whitespace.ArgumentNullExceptionThrown when correlation is null.Default implementation of IDurableTaskWorkerChainRunner{TWork,TResult,TProjection}.
TWorkType of work carried by the chain.TResultType of terminal execution result.TProjectionType of visible projection repaired from terminal facts.Durable Task-facing decision produced by the worker adapter.
TWorkType of work carried by the chain.TResultType of terminal execution result.TProjectionType of visible projection repaired from terminal facts.Decisions are passive instructions for host-owned orchestration code. They do not schedule activities, persist state, create timers, deliver external events, or own Durable Task worker/client setup.
DurableTaskWorkerDecision<TWork, TResult, TProjection> ScheduleExecutor(DurableWorkerEnvelope<TWork> claim, FlowRetryPolicy? retryPolicy = null)
Source
Creates an executor scheduling decision for a claimed work item.
claimClaim envelope that authorized executor scheduling.retryPolicyOptional retry policy for executor activity.A schedule-executor decision.
ArgumentExceptionThrown when claim is not a claimed outcome.ArgumentNullExceptionThrown when claim is null.DurableTaskWorkerDecision<TWork, TResult, TProjection> WaitForExternalEvent(DurableWorkerCorrelation correlation, string eventName, FlowTimeout? timeout = null)
Source
Creates an external-event wait decision.
correlationCorrelation identifiers for the wait.eventNameExternal event name expected by host orchestration code.timeoutOptional durable timeout for the wait.A wait-for-external-event decision.
ArgumentExceptionThrown when eventName is null, empty, or whitespace.ArgumentNullExceptionThrown when correlation is null.DurableTaskWorkerDecision<TWork, TResult, TProjection> RepairProjection(DurableWorkerEnvelope<TResult> completion, FlowRetryPolicy? retryPolicy = null)
Source
Creates a projection repair scheduling decision from a completion envelope.
completionCompletion envelope that recorded a terminal fact.retryPolicyOptional retry policy for projection repair activity.A repair-projection decision.
ArgumentExceptionThrown when completion is not a completed outcome.ArgumentNullExceptionThrown when completion is null.DurableTaskWorkerDecision<TWork, TResult, TProjection> Complete<TPayload>(DurableWorkerEnvelope<TPayload> envelope)
Source
Creates a complete decision from a worker envelope without carrying a projection payload.
TPayloadEnvelope payload type.envelopeEnvelope that completed the worker chain.A complete decision.
ArgumentNullExceptionThrown when envelope is null.DurableTaskWorkerDecision<TWork, TResult, TProjection> CompleteProjection(DurableWorkerEnvelope<TProjection> envelope)
Source
Creates a complete decision from a reconciled projection envelope.
envelopeProjection envelope produced by projection repair.A complete decision that carries the repaired projection.
ArgumentExceptionThrown when envelope is not a reconciled outcome.ArgumentNullExceptionThrown when envelope is null.DurableTaskWorkerDecision<TWork, TResult, TProjection> Fault<TPayload>(DurableWorkerEnvelope<TPayload> envelope)
Source
Creates a fault decision from a worker envelope.
TPayloadEnvelope payload type.envelopeEnvelope that faulted the worker chain.A fault decision.
ArgumentNullExceptionThrown when envelope is null.DurableTaskWorkerDecision<TWork, TResult, TProjection> IgnoreLateSignal<TPayload>(DurableWorkerEnvelope<TPayload> envelope, string? eventName = null)
Source
Creates a late-signal decision from a worker envelope.
TPayloadEnvelope payload type.envelopeEnvelope that identified a stale signal or fence.eventNameOptional event name associated with the stale signal.An ignore-late-signal decision.
ArgumentNullExceptionThrown when envelope is null.DurableTaskWorkerDecision<TWork, TResult, TProjection> WaitForRetry<TPayload>(DurableWorkerEnvelope<TPayload> envelope, FlowRetryPolicy? retryPolicy = null)
Source
Creates a retry wait decision from a worker envelope.
TPayloadEnvelope payload type.envelopeRetryable envelope that should wait before retry.retryPolicyOptional retry policy that explains host retry intent. When null, the host chooses its default retry or timer behavior.A wait-for-retry decision.
ArgumentExceptionThrown when envelope is not retryable.ArgumentNullExceptionThrown when envelope is null.DurableTaskWorkerDecision<TWork, TResult, TProjection> TimedOut(DurableWorkerCorrelation correlation, string eventName, DurableWorkerDiagnostic? diagnostic = null)
Source
Creates a timeout decision for a wait branch that has expired.
correlationCorrelation identifiers for the timed-out wait.eventNameExternal event name whose wait timed out.diagnosticOptional safe diagnostic details.A timed-out decision.
ArgumentExceptionThrown when eventName is null, empty, or whitespace.ArgumentNullExceptionThrown when correlation is null.DurableTaskWorkerDecisionKind Kind { get; }
Source
Gets the decision kind.
DurableWorkerCorrelation Correlation { get; }
Source
Gets the correlation identifiers associated with the decision.
DurableWorkerDiagnostic? Diagnostic { get; }
Source
Gets optional safe diagnostic details.
TWork? Work { get; }
Source
Gets the work payload when carried by this decision.
TResult? Result { get; }
Source
Gets the terminal result payload when carried by this decision.
TProjection? Projection { get; }
Source
Gets the projection payload when carried by this decision.
string? EventName { get; }
Source
Gets the external event name for wait, timeout, or late-signal decisions.
FlowTimeout? Timeout { get; }
Source
Gets the optional timeout associated with an external event wait.
FlowRetryPolicy? RetryPolicy { get; }
Source
Gets retry intent that host orchestration code can translate into Durable Task retry options.
DurableWorkerProjectionOutcome? SourceOutcome { get; }
Source
Gets the worker contract outcome that produced the decision, when one exists.
Configures the passive Durable Task worker adapter.
Options describe retry intent for host-owned Durable Task activity scheduling. They do not register workers, create storage providers, or execute retries by themselves.
FlowRetryPolicy? ExecutorRetryPolicy { get; set; }
Source
Gets or sets the retry policy attached to executor scheduling decisions.
Hosts translate this value into Durable Task activity retry options when a claim maps to DurableTaskWorkerDecisionKind.ScheduleExecutor.
FlowRetryPolicy? ProjectionRetryPolicy { get; set; }
Source
Gets or sets the retry policy attached to projection repair scheduling decisions.
Hosts translate this value into Durable Task activity retry options when a completion maps to DurableTaskWorkerDecisionKind.RepairProjection.
Registers the passive AppSurface Workers Durable Task adapter boundary.
The module depends on AppSurface Workers and Flow DurableTask, registers decision-mapping services, and leaves Durable Task worker/client hosting, storage providers, endpoints, authentication, and background services to the application.
Identifies the Durable Task-facing decision produced by the AppSurface worker adapter.
Numeric values are part of the adapter compatibility contract and may appear in durable history, tests, or telemetry. Do not reorder, remove, renumber, or reuse values.