My understanding is that a @workflow decorated function is required to return a DAG of operators. i.e. no actual &quot;calculations&quot; are performed within the function other than whatever &quot;setup&quot; calculations need to be made to populate the operator parameters.<p>I could be wrong, but the Facebook team has built an Python internal DSL for building DAGs of operators in a procedural manner, helping maintain type-safeness between the input channels and the input-and-outputs of each operator.<p>Really cool idea.<p>Because all the channels and operators have typed interfaces, it means they can then materialize UI for configuring any collection of workflows. React would be ideal for this, mapping types to React components. Would be awesome to know if they built up a GraphQL layer on top of the workflow config parameters to get really elegant frontend-backend binding.