Control
Five boxes drive a scenario’s execution flow.
A reminder: every box also has the implicit in, error and done ports — see
Ports and links.
Input / Param
Section titled “Input / Param”Declares the scenario’s parameters.
| Inputs | none |
| Outputs | value — a single object { name: value, … } |
| Configuration | name (the parameter’s name), valueType (its type and default value) |
The values are supplied at launch, by --param name=value on the command line,
or asked for interactively if the run reaches the box with no value available.
Input "baseUrl" (string) ──► env port of the requestOutput / Return
Section titled “Output / Return”Exposes a result to the scenario’s caller.
| Inputs | value |
| Outputs | none — it is a sink: neither error nor done |
| Configuration | name |
A scenario called by a Run scenario action makes each of its outputs available
on the caller’s output:<name> port.
Two-way branch.
| Inputs | left, right |
| Outputs | then, else |
| Configuration | operator: lt, lte, eq, gte, gt, ne, contains — plus left and right as literal values |
A tip: if neither operand is wired nor filled in, the box simply tests the
truthiness of the signal received on in. That is the “if we got this far” with no
explicit condition.
Switch (N-way branch)
Section titled “Switch (N-way branch)”Branch with N ways out.
| Inputs | on |
| Outputs | one case-<id> port per declared case, plus default |
| Configuration | cases: a list of { id, value } |
Preferable to a cascade of If boxes as soon as there are more than two outcomes: each case is its own wire, visually legible.
Error-recovery boundary.
| Inputs | maxAttempts, delay |
| Outputs | attempt (each attempt), exhausted (attempts used up) |
| Configuration | see below |
| Field | Default | Role |
|---|---|---|
maxAttempts | 3 | Maximum number of attempts |
backoff | fixed | fixed, linear or exponential |
delay + delayUnit | — | Base delay (ms, s, min) |
factor | 2 | Growth factor in exponential mode |
maxDelay + maxDelayUnit | — | Ceiling on the delay |
retryOnError | true | Retry on an error |
retryOnFailure | false | Retry on a business failure |
retryOnStatus | — | A list of HTTP statuses, for example [429, 503] |
The subgraph wired onto attempt makes up the retried scope. On success, the way
out is via done. This box has no error port: it is the boundary.
Réessayer (3, exponentiel, [429,503]) ├─ attempt ──► Requête HTTP ──► Assert └─ exhausted ──► Throw « service indisponible »