My quick analysis is that Metaflow is in my opinion more a packager then a dag automation tool, although it has a few dag features.
Also its approach with conda and version budling per step is in my opinion not great as it spreads imports all over the python file, (not compliant with PEP).
I think it's ok for some very simple dag (mostly linear sequences of steps) but it doesn't have most of the features that make prefect-core stand out.
I have been following the conda discussion quite a bit, and conda manipulation at this level sound great but in reality cloning, building and switching environments in a costly operation. It makes more sense in most cases just to rationalize the conda packages at the beginning of your flow especially if the granularity of the tasks is very small ...
Probably there are more difference, but after a more detail analysis the two tools look very different to me. I mean, it's very simple to add a `@task`or a
@step
decorator to your library but that does not mean that you have the same sort of sophistication of full-fledge dag management libraries. Just check the code in github in the two packages to verify this statement.
That said you may use metaflow if you like the paradigm and if you this it's a good fit for your pipeline, but I would recommend prefect for anything else...