converge
converge copied to clipboard
Refactor conditional execution to live as metadata inside of the graph
Discussion:
The requirement to have immutable parent/child relationships between the generated switch and conditional nodes and their embedded child nodes is manifesting in some difficulty dealing with graph modifications for grouping, and has introduced a few other pain points in terms of overall graph execution flow.
It might be better if conditional execution was a node or edge metadata property (perhaps as a traversable
flag on an edge? or a predicate
flag on the node?) that way once the macro expansion and conditional evaluation happened, re-ordering of nodes wouldn't affect execution or cause a rendering failure due to invalid thunk resolution. We'd still probably need the switch and case nodes in order to support rendering values in the predicate expressions, but the conditional_resources.go
code might be able to be factored out.