Configure execution
Now create an Averos configuration file averos.config.json in your working folder with the following content::
{
"mode": "resilient",
"timeoutMs": 1800000,
"maxAttempts": 1,
"workspaceRoot": "./generated-app",
"manifestPath": "../todoapp-manifest.json",
"logsDir": "./generated-app/averos-logs",
"statePath": "./generated-app/state.json",
"checkpointPath": "./generated-app/checkpoints.json"
}
🙋♂️ This configuration tells Averos where the application is defined, where it should be generated, and where execution state should be persisted.
Configuration at a glance
| Setting | Purpose |
|---|---|
mode |
Controls failure behaviour during execution |
timeoutMs |
Maximum duration of an execution session |
maxAttempts |
Number of attempts allowed for each node |
workspaceRoot |
Root directory where the application is generated |
manifestPath |
Location of the application manifest |
logsDir |
Directory containing execution logs |
statePath |
Persistent execution state |
checkpointPath |
Checkpoint information used for resumability |
Execution modes
Averos supports two execution modes.
Resilient is the default:
If a node fails, its transitive dependants are skipped while independent branches can continue executing.
This maximizes the amount of work completed before execution stops.
The objective is simple:
Complete as much independent work as possible before stopping.
Strict takes the opposite approach:
A failure immediately stops the execution and remaining nodes are skipped.
graph TD
subgraph Resilient Mode
A[Failure] --> B[affected dependants]
A --> C[independent branches]
B --> B_res[skipped]
C --> C_res[continue]
end
subgraph Strict Mode
D[Failure] --> E[execution stops]
E --> F[remaining nodes → skipped]
end
For the first example, keep:
"mode": "resilient"