Apache Airflow 3.4.0 Adds Task Loops and Lets You Write DAGs in TypeScript, Go, or Java
Apache Airflow 3.4.0 shipped November 6 with bounded Task Loops for iterative workflows and the AIP-85 Dag Importer, which lets teams define entire DAGs in TypeScript, Java, or Go.

Apache Airflow 3.4: Loops and New Languages for DAGs
Apache Airflow 3.4.0 was released on November 6, 2026, and it brings two changes that data teams have been asking for. The first is bounded Task Loops, a way to run iterative workflows without the hacks people used to rely on. The second is the AIP-85 Dag Importer, which lets teams define entire DAGs in TypeScript, Java, or Go instead of Python. For a project that has been Python-only for its whole life, that second change is the bigger deal.
Airflow is the workhorse of data engineering. It schedules and runs the pipelines that move data from one system to another, and it is used by thousands of companies to do it. Releases like this one do not make headlines outside the data world, but inside it they change how teams plan their next quarter. Apache Airflow 3.4 is a release about removing friction, and both features do exactly that.
Task Loops: Iteration Without the Workarounds
Anyone who has run Airflow in production knows the problem Task Loops solve. Until now, running a task repeatedly until a condition was met meant one of two bad options: dynamic task mapping with a fixed count you had to guess in advance, or a sensor that polled and waited, burning a worker slot the whole time. Neither was good for genuinely iterative work, like retrying a flaky API call with backoff, or processing a file in chunks until it is done.
Bounded Task Loops give you a third option. A task can now loop within defined bounds, repeating its work until it succeeds or hits the limit you set. The key word is bounded. Unbounded loops are how pipelines run forever and bills explode, so Airflow caps the iterations and makes the limit explicit. That is the right design. Iteration is useful. Infinite iteration is a bug.
The practical effect is smaller, cleaner DAGs. Workflows that used to need a chain of mapped tasks and a sensor can now be a single loop. That means fewer tasks to monitor, fewer failure modes, and DAG code that reads like what it actually does. If you maintain Airflow pipelines, this is the feature to try first.
DAGs in TypeScript, Go, and Java
The AIP-85 Dag Importer is the more surprising change. Airflow DAGs have always been Python, and Python is still the default. But plenty of teams write their services in TypeScript, Go, or Java, and asking those teams to maintain a Python codebase just for orchestration has always been a tax. The Dag Importer removes it. You define the DAG in your team's language, and Airflow imports it.
This matters for more than convenience. Data teams increasingly sit inside engineering organizations that standardize on one language, and the orchestration layer has been the exception that forced a second skill set. Letting a Go team write Go DAGs means the same people who own the service own the pipeline, with the same tooling, the same tests, and the same code review. That is how you stop data pipelines from becoming the thing nobody wants to touch.
There are limits worth knowing. The importer covers DAG definitions, not the whole plugin ecosystem, and Python remains the first-class language for custom operators. Teams should treat this as a way to define pipelines in the language they know, not as a reason to rewrite everything overnight. Start with new DAGs, keep the old ones in Python, and let the mix settle.
Where This Fits in the Bigger Shift
Airflow 3.4.0 lands in a month when developer tooling is moving fast. GitHub Agentic Workflows hit general availability, letting teams describe jobs in Markdown and hand them to an agent. The GitHub Octoverse 2026 report showed agents now start 40 percent of pull requests. And TypeScript 7.1 beta brought back the compiler API developers missed. The pattern across all of them is the same: the tools are meeting developers where they already work, instead of demanding developers come to the tool.
Airflow is doing the same thing with the Dag Importer. The project spent years as a Python tool for Python teams. Version 3.4.0 is the release where it starts becoming a data tool for any team, in any language. That is a bigger change than a version number suggests, and it is the reason this release is worth upgrading for, even if you never use a Task Loop.


