Dear Airflow Community,
I am excited to announce that the Apache Airflow Java SDK `1.0.0-SNAPSHOT`
prepared on 2026-10-30 is available for testing!
This is a development snapshot, not a release, so do not run it in
production. It may contain significant issues, and a newer build can
replace it under the same version.
The headline of this snapshot: **you can now define an entire Dag in Java,
with no Python file at all.**
The schedule, the tasks, their options, the dependencies between them,
branching, task groups and triggering another Dag are all written in Java.
Airflow reads the bundled jar like any other Dag file, so the Dag shows up
in the UI, runs on its schedule, and the tasks pass values to each other
through XCom.
You can still keep the Dag in Python and implement only its stub tasks in
Java.
You will need Java 11 or later, and you can test it with Airflow 3.4.0rc1.
To set up a Java SDK project, follow the Java SDK guide [1] or the API
reference [2], and to set up the Airflow core it runs against, follow the
3.4.0rc1 announcement [3].
To test the SDK, add the ASF snapshots repository [4] to your build
configuration:
Maven:
```xml
<repositories>
<repository>
<id>apache-snapshots</id>
<url>https://repository.apache.org/content/repositories/snapshots/</url>
<snapshots><enabled>true</enabled></snapshots>
<releases><enabled>false</enabled></releases>
</repository>
</repositories>
<dependency>
<groupId>org.apache.airflow</groupId>
<artifactId>airflow-sdk</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
```
Gradle:
```groovy
repositories {
maven {
url 'https://repository.apache.org/content/repositories/snapshots/'
mavenContent { snapshotsOnly() }
}
}
dependencies {
implementation 'org.apache.airflow:airflow-sdk:1.0.0-SNAPSHOT'
}
```
To build a Dag bundle with the Gradle plugin (`org.apache.airflow.sdk`),
add the same repository under `pluginManagement { repositories { ... } }`
in `settings.gradle` as well.
If you use an IDE, it should fetch the corresponding Javadoc automatically
when you install the snapshot.
If you encounter any issue during setup or would like to provide feedback,
please discuss in the `#sig-lang-sdks` Slack channel [5].
Many thanks to everyone who wrote or reviewed the Java SDK changes that
went into this snapshot.
Special thanks to community contributor Po-An Yang (@FrankYang0529), who
carried much of the work.
[1] Java SDK guide:
https://airflow.staged.apache.org/docs/apache-airflow/stable/authoring-and-scheduling/language-sdks/java.html
[2] Java SDK API reference:
https://airflow.staged.apache.org/docs/java-sdk/stable/index.html
[3] Apache Airflow 3.4.0rc1 announcement:
https://lists.apache.org/thread/wb9ozmm150jwvsfmhpxhkgb18yskvcw9
[4] ASF snapshots repository:
https://repository.apache.org/content/repositories/snapshots/org/apache/airflow/
[5] `#sig-lang-sdks` Slack channel:
https://apache-airflow.slack.com/archives/C08UCFRNAD8
Best regards,
Jason