| name | airflow-java-sdk |
| description | Guide for contributing to the Airflow Java SDK (AIP-108). Use this skill whenever a contributor is working in the `java-sdk/` directory or on the Java coordinator in `task-sdk/src/airflow/sdk/coordinators/java/` — whether they want to add a feature, write tests, fix a bug, understand the architecture, or prepare a PR. Trigger on phrases like "Java SDK", "JavaCoordinator", "java-sdk", "annotation processor", "Builder.Task", "BundleBuilder", or anything about running JVM tasks in Airflow.
|
Airflow Java SDK contributor guide
The Java SDK lets Airflow tasks execute JVM code (Java, Kotlin, or any JVM language). You are helping
a contributor work in one or both of these locations:
java-sdk/ — the JVM-side library (Kotlin source, published to Maven)
task-sdk/src/airflow/sdk/coordinators/java/ — the Python coordinator that launches the JVM subprocess
Read these two documents early in every session — they contain the authoritative reference material:
airflow-core/docs/authoring-and-scheduling/language-sdks/java.rst — user-facing guide:
annotation vs. interface API, XCom type mapping, Gradle/Maven steps, coordinator config.
java-sdk/README.md — contributor guide: repository layout, detailed execution walkthrough,
Gradle + Breeze test commands, coding conventions, common tasks, and PR checklist.
SDK package architecture
The JVM-side library is split into two packages with distinct visibility rules:
org.apache.airflow.sdk — public, user-facing API. Classes here (e.g. Client, Bundle,
BundleBuilder, Server) are stable contracts that DAG authors and task implementers import
directly. Changes to this package are breaking changes.