Run Airflow tasks in other languages
Airflow 3 enables users to write SDKs allowing definition of Airflow tasks in languages other than Python. An experimental SDK for Golang is available with the Airflow 3.0 release. Multilanguage support is crucial for preventing language lock-in and enabling highly specialized, optimized tasks. Support for other languages also helps users migrate workflows from legacy tooling, where tasks are often written in a language other than Python, to Airflow without the need for expensive refactoring.
Multilanguage support is currently experimental and under developement. This guide is subject to change and will be expanded over time. If you want to contribute to support writing Airflow tasks in the language of your choice, please reach out to the Airflow developers in the Airflow Slack or the Airflow Dev list.
Assumed knowledge
To get the most out of this guide, you should have an existing knowledge of:
- Basic Airflow concepts. See Introduction to Apache Airflow.
- Basic Golang concepts. See Golang documentation.
How to use the Golang SDK
The Golang SDK is experimental and under development. You can find the latest status here.
Other ways to run tasks in other languages
You can also run tasks in other languages using the following methods:
- Use the BashOperator to run a script in another language. For example, you can use the BashOperator to run a JavaScript or R script. See Run a script in another programming language for more information.
- Use the KubernetesPodOperator to run any Docker image, which can include code in any language. See Use the KubernetesPodOperator to run a script in another language for more information.