Wait until flow.wait
A wait suspends the run until a deterministic UTC instant. It fits cooling periods, scheduled execution, business deadlines, and delayed retries. Once the deadline is committed, the current worker is released. The scheduler delivers the run again when the time is due, and replay continues through resumed. No thread or process needs to remain occupied while the run waits.
Deadline expression
resume_at is a date-time expression that can read start input or a committed upstream result. It must resolve to an absolute timestamp with a timezone. Do not recalculate a relative duration during every replay because a restart could keep moving the deadline. For a seven-day wait, persist the base time and computed deadline in input or a task result, then have this node read the final instant.
If the deadline is already in the past when scheduled, the run continues as soon as the scheduler processes it. A wait is not a terminal timeout and does not fail a run by itself. When expiry should end the process, wake through this node and then enter flow.timeout with the same persisted deadline. Use a signal or hook for external messages instead of replacing an event boundary with frequent polling.
Scheduling and recovery checks
Incoming control uses in and execution resumes from resumed. Production needs due-time scanning or targeted wake-up, synchronized clocks, bounded scan batches, and duplicate-delivery handling. Test future and expired timestamps, timezone offsets, process and scheduler restarts, and duplicate wake-ups for one run. If history already contains the resume event, a worker must not create another wait decision.
Use it to suspend a run until an absolute UTC instant. It fits cooling periods, scheduled work, business deadlines, and deterministic retry windows.
Runtime behavior
After the deadline is committed, the worker is released. The scheduler redelivers the run when due and replay continues from the resumed port.
Node contract
- Type
flow.wait- Role
- Durable runtime command
- Runtime binding
wait_until- Durable identity
- Graph node ID
Configuration properties
| Property | Type and control | Default | Rules |
|---|---|---|---|
resume_atResume time (UTC) | dictA3SFlowExpressionInput | {"apiVersion":"a3s.dev/flow-expression/v1","expression":{"op":"field","path":"input.deadline"}} | Enter a UTC timestamp ending in Z, or choose a workflow field that provides one.Required |
Ports
| Direction | Port ID | Kind | Value types |
|---|---|---|---|
| Input | inIn | control | FlowControl |
| Input | resume_atResume at | data | DateTime |
| Output | resumedResumed | control | FlowControl |
Node JSON example
The CLI creates the same structure from manifest defaults. Canvas position, title, and selection are presentation data.
CLI usage
Inspect the installed manifest first, then create the node and validate the complete workflow. Every command emits JSON.
Skill usage
The package includes the a3s-flow Skill. It queries the CLI catalog before creating, validating, compiling, and digesting a workflow.
Operational notes
- Use an absolute timestamp with a timezone.
- Process recovery must not recalculate the deadline.
- Production needs scheduled scanning or targeted wake-up delivery.
