Skip to content

Commit 3cbe9ac

Browse files
authored
feat(adrs): Add ADR selecting Airflow as an orchestration tool (#317)
Add an ADR choosing Apache Airflow as an orchestration tool. Fixes #114 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Added a comprehensive Architecture Decision Record documenting the adoption of Apache Airflow as the job orchestration solution. The document outlines the current platform context and technical requirements, details the selection criteria evaluated, highlights anticipated improvements in visibility and failure notifications, and documents the associated trade-off of maintaining an additional operational tool. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
1 parent 9db2078 commit 3cbe9ac

1 file changed

Lines changed: 48 additions & 0 deletions

File tree

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# 9. Use Apache Airflow as job orchestration tool
2+
3+
Date: 2026-05-27
4+
5+
## Status
6+
7+
Accepted
8+
9+
## Context
10+
11+
The Lakehouse data platform runs ingestion jobs to harvest data from source systems into
12+
the lake. These jobs currently run using cron to schedule them and capture logs to files
13+
on the same node. Monitoring jobs is difficult and not scalable as it requires logging into
14+
the node and checking the most recent log file for each job. It is also not possible to have
15+
notifications issued when jobs failed.
16+
17+
## Decision
18+
19+
Initially the options to be considered were:
20+
21+
- Airflow
22+
- Dagster
23+
- Prefect
24+
- Kestra
25+
- Luigi
26+
27+
and our requirements are simple:
28+
29+
- Mature with strong community
30+
- Tasks to be defined as Python code/packages.
31+
- Allows a cron-like timed schedule to be created.
32+
- A REST API to trigger jobs.
33+
- Allows one-off jobs triggered manually on request.
34+
- A web-based UI.
35+
- Container-based deployment.
36+
37+
[Apache Airflow](https://airflow.apache.org/) is already in use around teams across STFC and
38+
there is interest in setting up a local community of practice.
39+
Given that Airflow supports all of the above requirements this is the strongest driver to choose Airflow.
40+
41+
## Consequences
42+
43+
Jobs will have greater visibility with the ability to notify on failure and manual restart through
44+
a simple GUI button. Job history can also be inspected more easily through the tool.
45+
46+
On the downside Airflow becomes another tool to maintain as part of the platform infrastructure and new developers
47+
will need to understand it as they onboard into the project. As more DAG jobs are developed the
48+
overhead of moving to another tool, if needed, will become burdensome.

0 commit comments

Comments
 (0)