FlowDrop Workflow Specification 1.0-draft

Every execution strategy routes errors identically

A workflow that handles its own failures must mean the same thing whichever engine runs it, including the direct synchronous one.

The rule

Normative: this is the rule
  1. All execution strategies route error outputs the same way.
  2. Where the failing node has an error edge, its outputs are replaced by the shared error envelope and the run continues; where it has none, the run fails.
  3. No strategy may substitute its own error-handling behaviour.

What it means

The contract holds even for the strategy with the least machinery behind it. A strategy that runs a workflow in one pass, with nothing persisted between steps, still owes the same envelope a strategy built around persisted steps delivers: the same four keys, in the same shape, to the same downstream input. Having no step record to carry the envelope in is not a reason to carry less of it, or to shape it differently because the surrounding machinery differs. Nothing about how a strategy is built earns it its own error-handling behaviour.

Example

A node with a wired error edge fails under the strategy that keeps no record between steps; the downstream node's input arrives exactly as it would under any other strategy.

What the downstream node's input port receivesrouted
{"message": "boom blew up", "code": "E42", "node_id": "boom", "retryable": false}

Why

Recorded under OPEN-1.

Rule identifiers are permanent and are never renumbered. Each implementation publishes its own standing against these rules; this specification does not.spec 1.0-draft · ERR-13 · changed in spec 1.0