Airflow is the orchestrator the data world standardised on before anyone agreed it was pleasant to use. Nearly 47,000 GitHub stars, 1.6 billion Docker pulls, ten thousand Stack Overflow questions: whatever you run, there’s an Airflow operator for it, and whoever you hire has probably written a DAG. That gravitational pull is the product as much as the scheduler is, and it’s why the honest review is about when the default is still the right call.
The short answer
Choose Airflow when integration breadth and hiring liquidity matter more than developer delight: complex estates, many teams, tools that all ship Airflow support on day one. For a fresh pipeline built by a small team in 2026, I’d look at Dagster first, and I say that while fully expecting Airflow to outlive us all.
What it costs to run, in its three habitats
Self-hosted is free software and a real operations job: a scheduler, a metadata database, workers, and upgrades on a project that shipped over 2,000 commits in the last 90 days. Teams that already run Kubernetes shrug; teams that don’t should not learn on their orchestrator.
Astronomer’s Astro is the most complete managed option, and its pricing is usefully concrete: deployments from $0.35 an hour on the Developer plan and $0.42 on Team, which is roughly $255 to $300 a month for an always-on environment, plus workers from $0.13 an hour that only bill while tasks run and scale to zero when idle. Dedicated clusters for stricter isolation start at $2.40 an hour on Team and above, and there’s a small ephemeral-storage meter at $0.0002 per gibibyte-hour if your tasks need extra scratch space. Business and Enterprise tiers layer on support and governance.
The cloud house brands, Amazon MWAA and Google Cloud Composer, price by environment size and hours, and win mostly on procurement convenience: one more line on the invoice you already pay. Feature-wise they trail Astro’s tooling, which is what Astronomer’s whole business depends on.
Sizing workers on Astro
One more Astro detail that matters at estimation time: workers come in seven sizes, A5 through A160, from $0.13 an hour upward, and every plan includes an amount of ephemeral scratch storage per worker (10 gibibytes on Celery workers) with extra at $0.0002 per gibibyte-hour. Because workers bill only while tasks execute and scale to zero when idle, the shape of your DAG schedule matters more than its size: a hundred small tasks spread across the day can cost less than ten heavy ones stacked at midnight forcing big workers awake together. Astro’s billing view shows this per deployment, and it’s worth a look in week one rather than at invoice one.
The developer experience, honestly
DAGs are Python, which flatters the tool: real logic lives in operators, and testing a pipeline locally has long been Airflow’s weak spot. The honest update is that Airflow 3 landed a real answer to years of complaints: DAG versioning (a run completes on the version it started with, even if you deploy mid-run, which used to be a genuinely nasty failure mode), event-driven scheduling so DAGs can trigger on external events rather than cron alone, and a rebuilt UI. The 2.x-era gripes in older reviews deserve that asterisk now. The ecosystem of providers remains unmatched and the scheduler at scale is battle-tested; local development, even in 3.x, is still where Dagster runs away with it. G2 has it at 4.4 from 129 reviews (65% five-star, 30% four), which feels exactly right: respected, relied upon, not loved.
A costed example on Astro
Put numbers on a typical small production setup: one Team-plan deployment always on ($0.42 an hour is about $307 a month), with workers that run a combined three hours a day at $0.13 an hour, call it $12 a month. Roughly $320 monthly, before any dedicated cluster, for a fully managed scheduler with someone else carrying the pager. Against the loaded cost of even a slice of an engineer’s time spent nursing a self-hosted scheduler, that’s an easy trade for most teams, and it’s why my self-hosting advice above is blunt.
Two Astro-specific notes worth knowing before the call with sales: the Developer plan’s cheaper deployments ($0.35 an hour) are fine for staging but the plan lacks Team’s isolation options, and hibernating dev deployments when nobody’s working is the low-effort saving everyone forgets.
Operating it well, wherever it runs
The estates that age gracefully share habits. DAGs stay thin: business logic lives in libraries or dbt, and Airflow only sequences it, which keeps testing sane and migrations thinkable. Retries and alerts are set at the task level from the start, because the default silence is how failures compound overnight. Variables and connections live in a secrets backend, not the metadata database. And upgrades happen on a cadence, not when forced: the project moves quickly, and falling three versions behind turns a weekend task into a project.
Airflow or Dagster, the 2026 version
Dagster’s asset model (declare the tables you want, get lineage and freshness for free) is a better abstraction for analytics work, and its local development story embarrasses Airflow’s. Airflow counters with the ecosystem, the workforce, and the fact that every vendor integration is written for it first. Migration between them is real work, so the choice mostly matters greenfield. My split: existing Airflow with working pipelines, stay and modernise in place; new build with a small team, Dagster; new build in a large org where six other teams already run Airflow, follow the herd, the herd is the feature.
Verdict
The infrastructure default, still earning it on breadth and still conceding on ergonomics. If you run it, pay someone (Astro, MWAA, Composer) unless operations is your actual hobby. And if you’re starting clean, at least spend an afternoon with the alternatives before inheriting a decade of conventions.
