--- id: DATA-4 family: RT-DATA level: core profiles: [runtime] posture: normative-target added: "1.0" changed: "1.0" source: https://flowdrop.io/spec/rules/rt-data/data-4 specification: FlowDrop Workflow Specification 1.0-draft licence: CC BY 4.0 --- # DATA-4 — When a node is ready to run *RT-DATA (Part II) · level: core · profiles: runtime · added in 1.0* Readiness is the whole of a workflow's scheduling contract: it decides what runs, in what order, and what a node is guaranteed to have in hand when it does. ## The rule > **Normative.** This is the rule. > > 1. A node runs once its incoming edges are satisfied. > > 2. A node with at least one incoming trigger edge is ready as soon as any one of those trigger edges is satisfied, and its data ports are not evaluated at all; such a node may legitimately run with an unfilled data port. > > 3. Otherwise its incoming data edges are grouped by the input port they target; a group is satisfied by at least one source that has completed, is on an active branch, and is not a round behind the consumer on a loop the two share; and every group must be satisfied. > > 4. That is an OR within a port and an AND across ports. ## Related rules - Names: DATA-1, DATA-5, SG-19, SG-20 - Referenced by: BR-6, DATA-5, SG-19, SG-20 --- Rule identifiers are permanent and are never renumbered. This specification carries no implementation status: each implementation publishes its own standing against these rules. Licensed CC BY 4.0.