par
Since pre-v2.15.0; real fan-out v2.15.0 · Used inside a declaration
Grammar
par {
<branch-steps>
}
par is concurrent fan-out: its branches execute in parallel and
their results join.
What the runtime actually does (v2.15.0)
A real futures::join_all over the lowered branches
(parallel::run_par) — not sequential execution wearing a concurrent
keyword. Branch tool calls ride the v2.69.0 channel semaphore, so a
resource { capacity: N } bound holds ACROSS a fan-out.
Honest limits
Static branches only: par over <collection> (dynamic fan-out) does
not exist in the grammar today, which is also why par needs no
concurrency backstop of its own — the author writes each branch.
See also
axon://primitives/tool— calls inside branches stay governed.