AgentCanvas / Pages / Developer Guide / Core / Decisions / Dataflow
9 ADRs

Decisions about what flows between nodes, where persistent data lives, and how boundary nodes (PortIn/Out, IterIn/Out, Initialize) shape the graph topology. Wire types and state containers are kept distinct by design (ADR-dataflow-004) — this field covers both sides of that boundary plus the pivot nodes that sit on it.

ID Title Date Status Supersedes
adr-dataflow-001 Recursive composite node system (PortIn/PortOut boundaries) 2026-03-26 accepted
adr-dataflow-002 State container system — dual-wire architecture with typed states 2026-03-31 accepted
adr-dataflow-003 Configurable IterIn/IterOut ports via config.ports 2026-04-10 accepted
adr-dataflow-004 Tighten the wire / state-container split 2026-04-15 accepted
adr-dataflow-005 LIST[T] wire-type modifier with consumer-side coercion 2026-04-15 accepted
adr-dataflow-006 Three-pivot boundary nodes: Initialize + iterIn + iterOut 2026-04-18 accepted
adr-dataflow-007 Multi-scope iteration — N coexisting (Initialize, iterIn, iterOut) triples in one flat graph 2026-05-09 accepted
adr-dataflow-008 Two-sided iterIn — fold the run-start initialize pivot into iterIn's left/input side (3 pivots → 2) 2026-06-09 accepted revises 006
adr-dataflow-009 Two-sided iterOut — fold the termination node into a stop port; final side + after-loop band 2026-06-11 accepted revises 008

Related

Related: the executor-side half of the three-pivot change (seed discovery + pairedWith transfer + validate_graph_connectivity) is executor/adr-executor-002. The executor-side half of the multi-scope change (per-scope state, settle isolation, portOut latch propagation) is executor/adr-executor-003.