You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit cdd3c79
Browse filesBrowse the repository at this point in the historyBrowse files
Add consolidated Language SDK compatibility matrix
Users comparing Language SDKs had to read each SDK's README, and the
per-SDK manifests lagged behind what the SDKs actually ship. One generated
matrix, split by authoring mode, shows what each SDK supports for a Dag
definition and for a Python Dag with stub TaskHandler.
Co-Authored-By: Claude <noreply@anthropic.com>
Language SDKs mature independently, so they do not all support the same features yet. The tables below show
211
+
what each Language SDK supports: the features common to both authoring modes, the features of a
212
+
:ref:`Dag definition <language-sdks/dag-definition>`, and the features of a
213
+
:ref:`Python Dag with stub TaskHandler <language-sdks/stub-taskhandler>`. A supported feature shows the SDK
214
+
release that shipped it. See the legend below the tables for what each mark means.
215
+
216
+
.. BEGIN AUTO-GENERATED LANG-SDK COMPAT MATRIX
217
+
218
+
.. list-table:: Language SDK versions
219
+
:header-rows: 1
220
+
:widths: 30 15 15 15
221
+
222
+
* - Version
223
+
- Go
224
+
- Java
225
+
- TypeScript
226
+
* - Min. Airflow version
227
+
- 3.4.0
228
+
- 3.4.0
229
+
- 3.4.0
230
+
* - Current Supervisor Schema Version
231
+
- 2026-10-30
232
+
- 2026-10-30
233
+
- 2026-10-30
234
+
235
+
.. list-table:: Common to both authoring modes
236
+
:header-rows: 1
237
+
:widths: 30 15 15 15
238
+
239
+
* - Dimension
240
+
- Go
241
+
- Java
242
+
- TypeScript
243
+
* - **TaskInstance states**
244
+
-
245
+
-
246
+
-
247
+
* - ``success`` (MUST)
248
+
- ✓ 1.0.0
249
+
- ✓ 1.0.0
250
+
- ✓ 1.0.0
251
+
* - ``failed`` (MUST)
252
+
- ✓ 1.0.0
253
+
- ✓ 1.0.0
254
+
- ✓ 1.0.0
255
+
* - ``up_for_retry`` (MUST)
256
+
- ✓ 1.0.0
257
+
- ✓ 1.0.0
258
+
- ✓ 1.0.0
259
+
* - ``skipped`` (SHOULD)
260
+
- ✓ 1.0.0
261
+
- ✓ 1.0.0
262
+
- ✓ 1.0.0
263
+
* - ``deferred`` (MAY)
264
+
- ✓ 1.0.0
265
+
- ✓ 1.0.0
266
+
- ✓ 1.0.0
267
+
* - ``up_for_reschedule`` (MAY)
268
+
- ✗
269
+
- ✗
270
+
- ✗
271
+
* - ``awaiting_input`` (MAY)
272
+
- ✗
273
+
- ✗
274
+
- ✓ 1.0.0
275
+
* - ``removed`` (MAY)
276
+
- ✓ 1.0.0
277
+
- ✓ 1.0.0
278
+
- ✓ 1.0.0
279
+
* - **Task runtime**
280
+
-
281
+
-
282
+
-
283
+
* - ``task-logging`` (MUST)
284
+
- ✓ 1.0.0
285
+
- ✓ 1.0.0
286
+
- ✓ 1.0.0
287
+
* - ``xcom-read-write`` (MUST)
288
+
- ✓ 1.0.0
289
+
- ✓ 1.0.0
290
+
- ✓ 1.0.0
291
+
* - ``connection-read`` (MUST)
292
+
- ✓ 1.0.0
293
+
- ✓ 1.0.0
294
+
- ✓ 1.0.0
295
+
* - ``variable-read-write`` (MUST)
296
+
- ✓ 1.0.0
297
+
- ✓ 1.0.0
298
+
- ✓ 1.0.0
299
+
* - ``self-contained-bundle`` (MUST)
300
+
- ✓ 1.0.0
301
+
- ✓ 1.0.0
302
+
- ✓ 1.0.0
303
+
* - ``retry-policy`` (MAY)
304
+
- ✗
305
+
- ✗
306
+
- ✗
307
+
* - ``task-state-store`` (MAY)
308
+
- ✓ 1.0.0
309
+
- ✓ 1.0.0
310
+
- ✓ 1.0.0
311
+
* - ``asset-state-store`` (MAY)
312
+
- ✗
313
+
- ✗
314
+
- ✗
315
+
* - ``asset-event-emit`` (MAY)
316
+
- ✗
317
+
- ✗
318
+
- ✗
319
+
* - ``asset-event-read`` (MAY)
320
+
- ✗
321
+
- ✗
322
+
- ✗
323
+
* - ``object-store`` (MAY)
324
+
- ✗
325
+
- ✗
326
+
- ✗
327
+
328
+
.. list-table:: Dag definition
329
+
:header-rows: 1
330
+
:widths: 30 15 15 15
331
+
332
+
* - Dimension
333
+
- Go
334
+
- Java
335
+
- TypeScript
336
+
* - ``native-dag-authoring`` (SHOULD)
337
+
- ✓ 1.0.0
338
+
- ✓ 1.0.0
339
+
- ✓ 1.0.0
340
+
* - ``dag-args`` (MUST †)
341
+
- ✓ 1.0.0
342
+
- ✓ 1.0.0
343
+
- ✓ 1.0.0
344
+
* - ``task-args`` (MUST †)
345
+
- ✓ 1.0.0
346
+
- ✓ 1.0.0
347
+
- ✓ 1.0.0
348
+
* - ``dag-params`` (MUST †)
349
+
- ✗
350
+
- ✗
351
+
- ✗
352
+
* - ``explicit-dependencies`` (MUST †)
353
+
- ✓ 1.0.0
354
+
- ✓ 1.0.0
355
+
- ✓ 1.0.0
356
+
* - ``taskflow-dependencies`` (MUST †)
357
+
- ✓ 1.0.0
358
+
- ✓ 1.0.0
359
+
- ✓ 1.0.0
360
+
* - ``task-group`` (MAY †)
361
+
- ✓ 1.0.0
362
+
- ✓ 1.0.0
363
+
- ✓ 1.0.0
364
+
* - ``if-else-branching`` (SHOULD †)
365
+
- ✓ 1.0.0
366
+
- ✓ 1.0.0
367
+
- ✓ 1.0.0
368
+
* - ``switch-case-branching`` (SHOULD †)
369
+
- ✓ 1.0.0
370
+
- ✓ 1.0.0
371
+
- ✓ 1.0.0
372
+
* - ``trigger-dag-run`` (MAY †)
373
+
- ✓ 1.0.0
374
+
- ✓ 1.0.0
375
+
- ✓ 1.0.0
376
+
* - ``dynamic-dag-generation`` (MAY †)
377
+
- ✓ 1.0.0
378
+
- ✓ 1.0.0
379
+
- ✓ 1.0.0
380
+
* - ``human-in-the-loop`` (MAY †)
381
+
- ✗
382
+
- ✗
383
+
- ✓ 1.0.0
384
+
* - ``dag-test`` (SHOULD †)
385
+
- ✗
386
+
- ✗
387
+
- ✗
388
+
* - ``asset-scheduling`` (MAY †)
389
+
- ✗
390
+
- ✗
391
+
- ✗
392
+
* - ``dynamic-task-mapping`` (MAY †)
393
+
- ✗
394
+
- ✗
395
+
- ✗
396
+
* - ``asset-inlets-outlets`` (MAY †)
397
+
- ✗
398
+
- ✗
399
+
- ✗
400
+
401
+
.. list-table:: Python Dag with stub TaskHandler
402
+
:header-rows: 1
403
+
:widths: 30 15 15 15
404
+
405
+
* - Dimension
406
+
- Go
407
+
- Java
408
+
- TypeScript
409
+
* - ``mixed-lang-stub-target`` (MUST)
410
+
- ✓ 1.0.0
411
+
- ✓ 1.0.0
412
+
- ✓ 1.0.0
413
+
* - ``taskflow-binding`` (MUST)
414
+
- ✓ 1.0.0
415
+
- ✓ 1.0.0
416
+
- ✓ 1.0.0
417
+
* - ``dynamic-task-mapping`` (MAY)
418
+
- ✗
419
+
- ✗
420
+
- ✗
421
+
* - ``asset-inlets-outlets`` (MAY)
422
+
- ✗
423
+
- ✗
424
+
- ✗
425
+
426
+
*Marks:* ``✓`` supported (with the SDK release that shipped it, when known) · ``✗`` not supported · ``n/a`` not applicable · ``–`` not published. A tier marked ``†`` applies only when ``native-dag-authoring`` is supported.
0 commit comments