what is the current thought on <https://github.com...
# dev-metaflow
b
what is the current thought on https://github.com/Netflix/metaflow/issues/245? it would be nice if we could compose and create flows programmatically
1
s
no updates but it is actively being discussed
can you share more about your use case?
b
yeah -- i basically wanted to make a library of composable flows/steps that we know works well , and expose it to our team and then was thinking of using a simple Builder dev experience so that anyone on the team can compose new flows programatically and test them , and easily add new Steps to our library eg :
Copy code
TransformJobBuilder
.addTask("audiolevel")
.addTask("videomotion")
.addTask("transciption_average_sentiment_analysis")
.addVideoIds(video_id)
.setEnvironment("development")
.build()
.run()
builder class constructs the flow, and runs it via a subprocess call
the use case is mainly for Feature Engineering (creating new features + testing them), so we can make different kinds of feature sets quickly/safely
but i can see other potential approaches, there are definitely pros + cons curious if netflix has a framework for their devs to create/test/validate new features safely?
s
makes sense. We have done something similar in the past by having a set of feature encoders structured as separate modules / functions which are then executed by a predefined Metaflow workflow
at least in our case it was more efficient to execute multiple feature encoders per task rather than make each encoder a separate task
another approach is to structure sets of features as separate workflows which are triggered asynchronously. For instance, one workflow can produce embeddings used by another workflow
we will provide various approaches to flow composition (e.g asynchronous separate workflows, combining sub-workflows into one large workflow, or executing a library of modules by a predefined workflow) - there isn’t a one-size fits all approach
b
Yeah, makes sense!
👍 1