Glossary
Glossary
This glossary is informative. Each entry gives a working definition and points to the section that owns the term; the owning section is authoritative where the two differ. Terms are listed alphabetically.
- Arm
- One of the two Result-consuming blocks on a
callobject,onSuccessandonFailure. Exactly one runs when the target’s Result settles, selected by the Result’stype:onSuccesscarriesvalue(shaping) andassign;onFailurecarriesassignalone. The arms. assign- A map from name to expression whose values are written into the frame’s
variables. It is available at every Result-consuming seam — a Step, a
Matchorcatchclause, a middleware phase, a call’s arms — except the terminal actions. Every expression in oneassignblock evaluates against the variable state from before the block ran. Variables:assign. - Binding root
- A bare top-level name through which an expression reads the running
workflow’s state:
vars,execution,frame,step,call,flow,provider,match,middleware, andfailure. Which roots are in scope depends on where the expression appears. Evaluation context, Execution context. - Call
- The dispatch unit: a request to run a target and obtain its Result. A
callobject names exactly one target (providerorflow), supplies it arguments (with) and a data payload (input), and consumes the settled Result through its arms. ACallStep dispatches one call; aGatherdispatches many concurrently. The call object. - Call provider
- A provider that serves as a Call target: an integration a
callnames in itsproviderfield, which receives the call’swithandinputand produces exactly one Result. Call providers. - Carried value
- The value a
Loopentry threads from one iteration to the next: the product of itsonSuccessvalue, fed to the re-entered scope as its input or, on the final iteration, emitted upward as the entry’s success value. TheLoopmiddleware. catch- A Step’s failure-path routing: an ordered list of clauses, each selecting
failures with a failure matcher and routing to a
nextStep, carried by the call-dispatching actions (CallandGather). The first matching clause wins; an unmatched failure propagates out of the frame. Failures andcatch. - Clock pin
- The single entry instant recorded for each construct execution (a Step pass,
a middleware phase run, a Call execution). The
now()function returns it, sonow()is stable within one construct execution and advances across re-executions. The clock pin. completion- A
Gather’s completion policy: the number of dispatchsuccessesthe fan-out must achieve, and whether theGatherwaits for in-flight dispatches once the outcome is determined.completion: the completion policy. - Control plane
- The state that steers a workflow rather than flowing through it:
parameters and the
varsthey seed,assignwrites, metadata records, and the failure context. Configuration crosses boundaries explicitly, aswitharguments. The control plane. - Data plane
- The values that flow through a workflow end to end: Step inputs and
outputs, the
valuea success Result carries, and what expressions evaluate to. The data plane carries JSON values per the data model. The data plane, The data model. - Dispatch
- One execution of a
callobject made by aGather: per element of theovercollection in the iterate form, per entry ofcallsin the scatter form. Every dispatch resolves to exactly one Result holding its position instep.results, whether it settled, was cancelled, or was skipped. The dispatch model. - Establishment
- A middleware entry is established once its
onEntryphase has completed. Established entries are guaranteed theironAlwaysphase on the way out, including when the scope is torn down by an interruption. The stack, The unwind. - Expression
- A JSON string value whose entire content is set off by a recognized
delimiter pair (for CEL,
{{ }}), evaluated at runtime against the execution context to produce a typed data-model value. Any other string is a literal. The delimiter pair identifies the expression language. Expressions. - Failure context
- The frame’s live failure: the
failurebinding, holding the failure envelope being handled, or null when none is active. It is set when a Step resolves to a failure Result and cleared by the first successful Step completion after that.failure. - Failure envelope
- The structured shape every non-success Result carries:
type,code,message,details,retryable, andprevious. All non-success Result types share it regardless of origin, andcatch,Retrypolicies, andonFailurephases all work over it. The failure envelope. - Failure matcher
- The language’s one failure-selection grammar: a structural object (
match) whose members —codespatterns,types,retryable— each constrain one contract field of the failure envelope, with every member present required to match.catchclauses andRetrypolicies select failures with it. Failure matching. - Flow
- The unit of definition: an object pairing an
entrypointwith astepsmap, optionally with named subflows (flows),parameters, andmiddleware. The same object describes a whole workflow and a piece of one; a Flow runs inside a frame and completes with exactly one Result. The Flow object. flows- A Flow field mapping names to Flow objects: named subflows a
callcan target by name. References resolve lexically — against the containing Flow’s map, then each enclosing Flow’s outward — with the nearest declaration winning, and the reference graph must be acyclic.flows, Flow-name scoping. - Frame
- The execution-time instantiation of a Flow: its own variables, input,
metadata, and lifecycle. A frame evaluates serially — one Step at a time —
and all concurrency is between the target executions its Steps have
outstanding. Frames are isolated; data crosses the boundary only through a
call’s
inputandwithon the way in and its Result on the way out. Frames and sequential execution. input- A field shaping the data a construct works on: a Step’s
inputproduces the value its action consumes, and acall’sinputproduces the payload delivered to the target. Absent, the field is a passthrough. Data flow:inputandoutput, The three axes. - Iterate form
- The
Gatherform pairingover(an expression producing an array) withcall(a call template): one dispatch per element, the element arriving ascall.inputand its position ascall.index. The iterate form. - Middleware entry
- One middleware in a stack: a middleware-provider URI plus up to four phase
blocks (
onEntry,onSuccess,onFailure,onAlways) configuring the author’s shaping and the middleware’s action at each phase. The middleware entry. - Middleware provider
- A provider that plugs into the phase model: the integration a middleware entry names, whose catalog contract declares its per-phase actions, parameter schemas, attachment levels, contributed metadata, and failure codes. Middleware providers.
output- A field shaping the value a construct emits on success: a Step’s emitted
value, a clause’s, or a middleware
onEntry’s product passed inward. Absent, each site’s defined default applies — passthrough everywhere except theGathersuccess projection. Data flow:inputandoutput, Field defaults. parameters- A JSON Schema (2020-12) declaring the arguments a target accepts. A Flow
declares its own; a provider declares its through the catalog. A call’s
withis validated against it, and a Flow’s validated arguments and schema defaults seed the frame’svarsat entry.parameters. - Phase
- A crossing of a middleware entry’s boundary:
onEntryon the way down;onSuccessoronFailure, thenonAlways, on the way up. A phase block is the author’s configuration of one phase:whengating the action,withconfiguring it, a shaping key, andassign. The phase model. - Provider
- A named integration the language dispatches to, identified by URI and resolved against the platform’s catalog: the extension seam through which platform capability enters a workflow. Two kinds exist, call providers and middleware providers. Providers.
- Result
- The discriminated value recording one outcome: a success carrying a
value, or a non-success carrying the failure envelope. Every Call produces exactly one Result, and so does every frame — which is what lets a Flow be called like a provider. The Result. - Result type
- The
typefield of a Result. Five spec-defined lowercase values:success, plus the non-successerror,cancellation,timeout, andskipped. Extension types are PascalCase and share the envelope and the handling machinery. Result types. - Scatter form
- The
Gatherform carryingcalls, a literal non-empty array of call objects: one dispatch per entry, each independently targeted and configured, with the Step’s received value arriving as every dispatch’scall.input. The scatter form. - Step
- A named entry in a Flow’s
stepsmap: the unit of execution inside a frame. A Step names anactionand, around it, routes (next,catch), shapes data (input,output), and captures variables (assign). Steps and step mechanics. - Step action
- The verb a Step performs, named by its
actiondiscriminator. Seven are defined:Call,Gather,Match,Pass,Sleep,Return, andRaise. Step actions. - Step graph
- The connected set of Steps within a single
stepsmap, executed fromentrypointtoward terminal completion. The Step graph is the operation a Flow-level middleware stack wraps. Where middleware attaches. - Structural field
- A field whose value is part of the definition and never an expression:
action,next,provider, aflowname, acatchclause’smatch, and the other discriminators and static identifiers. An implementation rejects an embedded expression in such a field. Where expressions may appear. - Target
- What a call runs: a provider or a Flow. A target execution is one run of a target — a frame, or a provider execution — and every target execution completes exactly once, with exactly one Result. The completion contract.
- Target window
- The binding exposing a settled target to its call’s arms, named for the
target field the call wrote:
flowis the completed frame (itsresult,vars,input, andmetadata);provideris the provider’s completed execution (itsinput,result, and declaredmetadata).call.resultdenotes the window’sresultfor either target kind. The target windows. - Unwind
- The teardown of an interrupted scope: execution stops, and the engine
ascends out of the scope running established middleware entries’
onAlwaysphases — and nothing else — innermost outward. The unwind. vars- The frame’s variable namespace: a flat object seeded from the Flow’s
parametersat frame entry and written byassignduring execution. Each frame has its own; a subflow never shares its caller’s. Thevarsmodel. with- The arguments a call or a middleware phase supplies, validated against the
target’s or the middleware’s declared
parametersschema. Distinct frominput:withconfigures the target,inputcarries the data being processed. The three axes. - Workflow definition
- The top-level JSON document describing a workflow: a root Flow object
carrying
$schema. The definition format.