В Airflow 3.3 появился AIP-108 — Language Task SDK. Теперь отдельные tasks можно реализовывать на Java или Go, при этом сам DAG и scheduling остаются в Python.
В DAG задача объявляется как stub:
@task.stub(queue="golang")
Дальше Airflow через Coordinator передает выполнение нужному runtime: JavaCoordinator для JVM или ExecutableCoordinator для Go.
При этом задача остается частью Airflow: доступны XCom, Variables, Connections, retries и стандартный logging.
Это особенно интересно для команд, где orchestration построен на Airflow, а часть production-кода уже написана на Java или Go. Теперь такую логику не обязательно переписывать на Python или выносить за пределы task model Airflow.
Пока Language Task SDK — experimental feature, поэтому API и protocol еще могут меняться.
Документация
@tldr_data
