Resumable execution
Long-running application generation should not have to start from zero because an execution was interrupted.
Averos treats execution as a persistent, recoverable process.
During execution, the executor maintains:
- execution checkpoints — the status of individual execution nodes;
- application state — the successfully established state used for subsequent incremental orchestration;
- per-node logs — detailed information for inspection and troubleshooting.
Checkpoints are persisted independently of the execution process. If a run reaches its timeout or is otherwise interrupted, the completed work is not simply forgotten.
You can resume the execution with:
averos run --config=averos.config.json --verbose --resume
Averos loads the persisted checkpoints and continues from the known execution state rather than unnecessarily repeating work that has already completed successfully.
Conceptually:
Execution
│
├── Node 1 ✓
├── Node 2 ✓
├── Node 3 ✓
├── Node 4 ...
│
▼
Checkpoint Store
│
▼
Interrupted / Timeout
│
▼
--resume
│
▼
Load checkpoints
│
▼
Continue execution
An interrupted execution is a recoverable state, not a lost run.
See resumability in action
You can deliberately shorten the execution timeout for the ToDo application to observe the recovery mechanism.
For example, change the configuration to:
{
"mode": "resilient",
"timeoutMs": 180000,
"maxAttempts": 1,
"workspaceRoot": "./generated-app",
"manifestPath": "../todoapp-manifest.json",
"logsDir": "./generated-app/averos-logs",
"statePath": "./generated-app/state.json",
"checkpointPath": "./generated-app/checkpoints.json"
}
Here:180000 ms = 3 minutes
Run the application:
averos run --config=averos.config.json --verbose
After the timeout is reached, the execution will stop with its progress persisted.
Resume it with:
averos run --config=averos.config.json --verbose --resume
Averos uses the persisted checkpoint information to determine which execution nodes have already completed and which work remains to be performed.
This provides a concrete demonstration of Averos’ checkpointed and resumable execution model.
Checkpoints and application state are different
Averos deliberately separates execution progress from application state.
The checkpoint store answers:
Where did this execution get to?
The state store answers:
What application state was successfully established?
This distinction allows execution recovery and incremental application evolution to remain separate concerns.
Execution
│
┌──────────┴──────────┐
▼ ▼
Checkpoint Store State Store
│ │
│ │
Execution progress Successful application
and node outcomes state
│ │
▼ ▼
Resume Next orchestration
cycle
graph TD
A[Execution] --> B[Checkpoint Store]
A --> C[State Store]
B --> B1["Execution progress<br/>and node outcomes"]
C --> C1[Successful application<br/>state]
B1 --> B2[Resume]
C1 --> C2["Next orchestration<br/>cycle"]
Together, these capabilities allow Averos to handle both sides of application evolution:
recover an interrupted execution and understand the established application state for the next change.