I did a little comparing to Prefect, though I haven't used Prefect in production. There was definitely a lot of similarity, but here's my "cons" list for Prefect:
* simple things are not laid out clearly in docs (UI/server separate from main pipeline run), so getting a local pipeline running with a UI is not simple
* local UI requires docker + docker-compose, again complicating local development a bit
*
prefect.context does not error on bad lookups / tutorial uses string-key lookup / no friendly
str, so that and other things make for some bad software patterns / more difficult debugging
* flashy UI, slow and hard to navigate (big cards for single-line statuses; logs not obvious; nav bar at bottom; slow page transitions and log search)
* no external triggers (just schedules / per-task run conditions)