Skip to main content

advance_execution_workflow

Function advance_execution_workflow 

Source
pub async fn advance_execution_workflow<D: ExecutionWorkflowStageDriver>(
    layout: &BackupLayoutGuard,
    expected_workflow: &ArtifactChecksumRecord,
    retained: &BTreeMap<u64, RetainedStageEvidence>,
    stage_limit: NonZeroUsize,
    driver: &mut D,
) -> Result<ExecutionWorkflowAdvance, ExecutionWorkflowRunError<D::Error>>
Expand description

Advance at most stage_limit absent stages of one prepared original workflow.

Prepare once with create_execution_workflow, retaining the original declarations before effects. Every call uses the same complete occupied-stage evidence admission as run_retained_execution_workflow. A pause happens only between settled stages, never halfway through a transfer. The limit bounds stage callbacks, not each stage’s original finite effect allowance or elapsed time. All admission, custody, durable reply retention and effect-specific qualification remain mandatory driver duties.

Pending observations/mutations, partial preparation or changed originals refuse before any callback; the bound cannot reset them or supply resend permission. A failed/cancelled callback retains original uncertainty. Inspect it through read_execution_workflow_progress and reconcile through the original owners. Complete replay invokes no driver callbacks, regardless of the selected limit.

§Errors

Retains the existing typed preparation, checkpoint, original-evidence and driver failures.