Executions
An execution is one run of a program. Starting the same program twice creates two executions. Recovery restores an existing execution. It does not start a new one.
An execution can run, wait, complete, fail, or be cancelled.
- Run — the function is making progress.
- Wait — it is parked on an event or timer. No compute is held.
- Complete — it returned a result.
- Fail — an uncaught error ended it. Retry is a new execution, or a retry of an effect that never completed.
- Cancel — a durable stop. Waiting executions do not resume on the event they were waiting for. In-flight children are cancelled with the parent.
History can record what the execution did. Recovery does not replay that history to reconstruct where the function is. It continues from committed execution state.
Cancellation, error contracts, and the client APIs that start or inspect executions are still settling. The distinction that will not move: program vs execution, and restore vs start again.