Portal Community

State Machine

StateLocationTrigger to Next State
RunningIn-process memoryHIL node returns Suspend result
SuspendingIn-process (transient)ExecutionMemory serialised and written to DB
SuspendedDatabase onlyPOST /api/executions/{executionResId}/resume called
ResumingIn-process (transient)State loaded, response data merged
RunningIn-process memoryEngine continues from HIL node's output port

Key Objects

SuspendPayload

Returned by HIL executors. Contains ExecutionResId, actor assignment, task type, and expiry. Tells the engine what to record.

Process_SuspendedExecutions

Database table holding serialised ExecutionMemory, pending node pointer, and correlation token. Durable across restarts.

ExecutionResId

GUID correlation token. Unique per suspension. Used as the resume API URL path parameter. Consumed on first use.

ResumePayload

Sent by the actor's channel to the resume API. Contains the actor's response data (decision, form values, acknowledgement).

Service Architecture

ServiceResponsibility
HILSuspensionServiceReceives Suspend result from engine, serialises ExecutionMemory, writes to DB, generates correlation token
CorrelationTokenServiceGenerates and validates ExecutionResIds — checks uniqueness and consumed status
HILResumeServiceValidates resume request, loads suspended state, merges response data, triggers continuation
IWorkflowContinuationOrchestratorRe-initialises the engine from loaded state and resumes execution from the suspended node's downstream