{
  "format": "agent-article-v0",
  "article_id": "EA-156",
  "canonical_url": "/tools/ea-156-airflow-dagster-prefect",
  "page_type": "reference",
  "claim_ids": [],
  "evidence_ids": [
    "EVD-EA-156-URL-E03FEB93AD01",
    "EVD-EA-156-URL-BF14EC5F3B0C",
    "EVD-EA-156-URL-12AB025C233A",
    "EVD-EA-156-URL-A2608B7FA995",
    "EVD-EA-156-URL-7118F4F703A2",
    "EA-156-R11-RESEARCH",
    "EA-156-R11-WEB-READBACK"
  ],
  "unknown_ids": [
    "EA-156-UNKNOWN-01",
    "EA-156-UNKNOWN-CURRENTNESS"
  ],
  "operational_object_ids": [],
  "provider": [],
  "models": [],
  "plans": [],
  "surfaces": [],
  "regions": [],
  "current_status": "UNKNOWN",
  "observation_status": "SPEC_ONLY",
  "freshness": "UNKNOWN",
  "last_verified": null,
  "supersedes": [],
  "superseded_by": [],
  "provenance": [
    "COMM-046-EA0156",
    "SRC-EA-156-URL-E03FEB93AD01",
    "SRC-EA-156-URL-BF14EC5F3B0C",
    "SRC-EA-156-URL-12AB025C233A",
    "SRC-EA-156-URL-A2608B7FA995",
    "SRC-EA-156-URL-7118F4F703A2",
    "WEBBODY-EA0156-R8-0105D55A"
  ],
  "article_sources": [
    {
      "id": "EVD-EA-156-URL-E03FEB93AD01",
      "evidence_class": "RESEARCH",
      "title": "source_class=official technical documentation; exact_title=Dags; author/org=Apache Airflow; canonical_url=",
      "href": "https://airflow.apache.org/docs/apache-airflow/stable/core-concepts/dags.html",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-156-URL-E03FEB93AD01"
      ],
      "supporting_locators": [
        "EVIDENCE_TABLE",
        "- source_class=official technical documentation; exact_title=Dags; author/org=Apache Airflow; canonical_url=https://airflow.apache.org/docs/apache-airflow/stable/core-concepts/dags.html"
      ],
      "scope": "EVIDENCE_TABLE",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EVD-EA-156-URL-BF14EC5F3B0C",
      "evidence_class": "RESEARCH",
      "title": "source_class=official technical documentation; exact_title=Overview; author/org=Dagster Labs / Dagster; canonical_url=",
      "href": "https://docs.dagster.io/",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-156-URL-BF14EC5F3B0C"
      ],
      "supporting_locators": [
        "EVIDENCE_TABLE",
        "- source_class=official technical documentation; exact_title=Overview; author/org=Dagster Labs / Dagster; canonical_url=https://docs.dagster.io/"
      ],
      "scope": "EVIDENCE_TABLE",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EVD-EA-156-URL-12AB025C233A",
      "evidence_class": "RESEARCH",
      "title": "source_class=official product/documentation page; exact_title=Modern Data Orchestrator Platform; author/org=Dagster Labs / Dagster; canonical_url=",
      "href": "https://dagster.io/",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-156-URL-12AB025C233A"
      ],
      "supporting_locators": [
        "EVIDENCE_TABLE",
        "- source_class=official product/documentation page; exact_title=Modern Data Orchestrator Platform; author/org=Dagster Labs / Dagster; canonical_url=https://dagster.io/"
      ],
      "scope": "EVIDENCE_TABLE",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EVD-EA-156-URL-A2608B7FA995",
      "evidence_class": "RESEARCH",
      "title": "source_class=official technical documentation; exact_title=Introduction; author/org=Prefect; canonical_url=",
      "href": "https://docs.prefect.io/v3/get-started",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-156-URL-A2608B7FA995"
      ],
      "supporting_locators": [
        "EVIDENCE_TABLE",
        "- source_class=official technical documentation; exact_title=Introduction; author/org=Prefect; canonical_url=https://docs.prefect.io/v3/get-started"
      ],
      "scope": "EVIDENCE_TABLE",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EVD-EA-156-URL-7118F4F703A2",
      "evidence_class": "RESEARCH",
      "title": "source_class=official technical documentation; exact_title=Flows; author/org=Prefect; canonical_url=",
      "href": "https://docs.prefect.io/v3/concepts/flows",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-156-URL-7118F4F703A2"
      ],
      "supporting_locators": [
        "EVIDENCE_TABLE",
        "- source_class=official technical documentation; exact_title=Flows; author/org=Prefect; canonical_url=https://docs.prefect.io/v3/concepts/flows"
      ],
      "scope": "EVIDENCE_TABLE",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EA-156-R11-RESEARCH",
      "evidence_class": "RESEARCH",
      "title": "EA-156 監査済みresearch / canonical revision binding",
      "supports": [
        "- AIRFLOW ESTABLISHED: Airflow 3.3.1 DocsはDagをschedule、tasks、dependencies、callbacks、retry、timeoutを含むworkflow modelと定義し、manual/API/schedule trigger、Dag Run/data interval、parallel runs、Python declaration、simulated dag.testを記載する。task-centricな定期・依存実行の一次証拠になる。\n- DAGSTER ESTABLISHED: Dagster Docsはdata orchestratorとしてlineage、observability、declarative programming、testability、asset dependencyを中心に説明する。Dagster公式ページはasset-centricとAirflow task-centricの差、Dagster core open source、Dagster+のmanaged/enterprise機能、hybrid deploymentを主張するため、Docsの機能記載と製品ページの主張を分ける。\n- PREFECT ESTABLISHED: Prefect 3 DocsはPython functionをflowにし、state tracking、failure handling、retries、timeouts、deployments、arbitrary infrastructure、events、human intervention、monitoring/auditingを説明する。Prefect Docsはhost消失等でterminal stateに到達しない“zombie flow run”も定義し、運用限界を明記する。\n- INFERENCE / PROPOSAL: Agentはboundedな判断・例外分類・tool選択に限定し、schedule、data dependency、retry、asset lineage、state recoveryをAirflow/Dagster/Prefect等へ寄せる構成は、責任境界と再現性を明確にする設計案である。3製品の公式Docsがこの統合構成を保証しているわけではない。"
      ],
      "limit": "canonical監査・revision bindingの存在を示す。外部ソースcurrentnessが本文またはcontrol-planeで確定していない場合は、currentnessをUNKNOWNのまま保持する。",
      "origin_class": "AUDITED_CANONICAL_RESEARCH_PACKET",
      "source_or_experiment_ids": [
        "COMM-046-EA0156"
      ],
      "supporting_locators": [
        "COMM-046-EA0156",
        "EA-156-R5-LEGACY-MIGRATION-20261008-R1",
        "content/staging/EA-156.md"
      ],
      "scope": "監査済みEA本文・canonical revision・既存Source Graph relationの範囲。欠損currentnessは推測で閉じない。",
      "provenance_status": "AUDIT_PASS_CANONICAL_BINDING"
    },
    {
      "id": "EA-156-R11-WEB-READBACK",
      "evidence_class": "IMPL",
      "title": "EA-156 Web body identity / canonical readback",
      "supports": [
        "canonical staging bodyのSHA-256一致とR9 canonical ledger readbackをProduction projectionの入力として検証する。"
      ],
      "limit": "body identity/readbackは本文claim自体の真偽や外部ソースの最新性を追加保証しない。",
      "checked_at": null,
      "origin_class": "IMPLEMENTATION_READBACK",
      "source_or_experiment_ids": [
        "WEBBODY-EA0156-R8-0105D55A"
      ],
      "supporting_locators": [
        "WEBBODY-EA0156-R8-0105D55A",
        "content/staging/EA-156.md",
        "EA-156-R5-LEGACY-MIGRATION-20261008-R1"
      ],
      "scope": "R9/R10 canonical readback後のProduction生成時body identity。",
      "provenance_status": "CANONICAL_READBACK_BODY_HASH_MATCH"
    }
  ],
  "research_sections": [
    {
      "heading": "WHY_THIS_MATTERS_TO_UPDATE",
      "text": "Agentに定期実行・データ依存・再試行・asset lineageを丸投げせず、非LLMのscheduler/data workflowを別の決定論的制御面として後続更新へ渡す。"
    },
    {
      "heading": "SCOPE_ROUTING",
      "text": "non-LLM component / implementation / governance / benchmark / audit / cost / operability / provider mapping。"
    },
    {
      "heading": "CLAIM_OR_RESEARCH_QUESTION",
      "text": "Airflow、Dagster、Prefectの公式Docsは、schedule/task/DAG、asset/lineage、Python flow/state/retry/deploymentを各々何と定義するか。Agent orchestrationと混同しない役割分担、各製品の運用限界・managed/OSS境界をどこまで確立できるか。"
    },
    {
      "heading": "EVIDENCE_TABLE",
      "text": "- source_class=official technical documentation; exact_title=Dags; author/org=Apache Airflow; canonical_url=https://airflow.apache.org/docs/apache-airflow/stable/core-concepts/dags.html; publication/update/access_date=update date not stated / docs version 3.3.1 / accessed 2026-09-14 00:00 JST; version/release/tag/commit/API revision=Airflow 3.3.1; supporting_locator=lines 4-30（Dagがworkflow、schedule/tasks/dependencies/callbacks/retries/timeoutsを包む）、lines 34-76（Python declaration）、lines 141-174（manual/API/schedule trigger、Dag Run/data interval、parallel runs）、lines 741-756（dag.test simulated execution）; evidence_label=VERIFIED_SPEC+PRODUCT_VOLATILE; relation=support+limit。\n- source_class=official technical documentation; exact_title=Overview; author/org=Dagster Labs / Dagster; canonical_url=https://docs.dagster.io/; publication/update/access_date=© 2026 / accessed 2026-09-14 00:00 JST; version/release/tag/commit/API revision=current Dagster Docs; supporting_locator=lines 109-126（data orchestrator、integrated lineage/observability、declarative programming、testability、asset definition/dependency例、Dagster Plus managed offering）; evidence_label=VERIFIED_SPEC+PRODUCT_VOLATILE; relation=support+context。\n- source_class=official product/documentation page; exact_title=Modern Data Orchestrator Platform; author/org=Dagster Labs / Dagster; canonical_url=https://dagster.io/; publication/update/access_date=update date not stated / accessed 2026-09-14 00:00 JST; version/release/tag/commit/API revision=current public page; supporting_locator=lines 160-189（branch deployments、guardrails、hybrid deployment、observability、AI-ready developer experience）および lines 205-220（asset-centric vs Airflow task-centric、hybrid、Dagster core open source、Dagster+ enterprise features）; evidence_label=SOURCE_REPORT+PRODUCT_VOLATILE; relation=context+limit。\n- source_class=official technical documentation; exact_title=Introduction; author/org=Prefect; canonical_url=https://docs.prefect.io/v3/get-started; publication/update/access_date=update date not stated / accessed 2026-09-14 00:00 JST; version/release/tag/commit/API revision=Prefect 3 documentation; supporting_locator=lines 21-39（Python orchestration engine、state tracking、failure handling、monitoring、portable execution、events/human intervention、dynamic runtime、CI/CD）および lines 50-75（Prefect Cloud/self-hosted server、read-only MCP diagnostics、RBAC scope）; evidence_label=VERIFIED_SPEC+PRODUCT_VOLATILE; relation=support+limit。\n- source_class=official technical documentation; exact_title=Flows; author/org=Prefect; canonical_url=https://docs.prefect.io/v3/concepts/flows; publication/update/access_date=update date not stated / accessed 2026-09-14 00:00 JST; version/release/tag/commit/API revision=Prefect 3 documentation; supporting_locator=lines 21-50（Python flow、tracked state、retries、timeouts、remote deployment）および lines 55-90（flow run interruption、zombie flow run、schedule/event/API/deployment、logs/events for monitoring/auditing）; evidence_label=VERIFIED_SPEC+PRODUCT_VOLATILE; relation=support+limit。"
    },
    {
      "heading": "FINDINGS",
      "text": "- AIRFLOW ESTABLISHED: Airflow 3.3.1 DocsはDagをschedule、tasks、dependencies、callbacks、retry、timeoutを含むworkflow modelと定義し、manual/API/schedule trigger、Dag Run/data interval、parallel runs、Python declaration、simulated dag.testを記載する。task-centricな定期・依存実行の一次証拠になる。\n- DAGSTER ESTABLISHED: Dagster Docsはdata orchestratorとしてlineage、observability、declarative programming、testability、asset dependencyを中心に説明する。Dagster公式ページはasset-centricとAirflow task-centricの差、Dagster core open source、Dagster+のmanaged/enterprise機能、hybrid deploymentを主張するため、Docsの機能記載と製品ページの主張を分ける。\n- PREFECT ESTABLISHED: Prefect 3 DocsはPython functionをflowにし、state tracking、failure handling、retries、timeouts、deployments、arbitrary infrastructure、events、human intervention、monitoring/auditingを説明する。Prefect Docsはhost消失等でterminal stateに到達しない“zombie flow run”も定義し、運用限界を明記する。\n- INFERENCE / PROPOSAL: Agentはboundedな判断・例外分類・tool選択に限定し、schedule、data dependency、retry、asset lineage、state recoveryをAirflow/Dagster/Prefect等へ寄せる構成は、責任境界と再現性を明確にする設計案である。3製品の公式Docsがこの統合構成を保証しているわけではない。"
    },
    {
      "heading": "LIMITS / COUNTEREVIDENCE / FAILURE_ENVELOPE",
      "text": "AirflowのDAG/task retry、Dagsterのasset/job/resource、Prefectのflow/task state/retryはいずれも外部side effectのexactly-onceやLLM品質を保証しない。Airflow scheduler/DAG parsing・backfill、Dagster asset materialization/lineage、Prefect zombie run・host/network・dynamic task、provider/plugin/version差が失敗包絡になる。公式ページの“reliable/trustworthy/production-grade”は製品説明であり、独立SLO/benchmarkではない。複数製品を一つの機能として合算しない。"
    },
    {
      "heading": "AVAILABILITY_GATES",
      "text": "Airflow 3.3.1 vs other releases、executor/worker/metadata DB/provider package、Dagster OSS vs Dagster+、asset checks/branch/hybrid/RBAC、Prefect 3 vs Cloud/self-hosted server、work pool/worker/infrastructure、MCP read-only scope、deployment/region/data residency、secrets/credentials、schedule/queue/concurrency、retry/timeout/retention。"
    },
    {
      "heading": "IMPLEMENTATION_STATE",
      "text": "Airflow/Dagster/Prefectの公式Docs/公式ページのみ確認。いずれもinstallation、DAG/asset/flow creation、scheduler/worker execution、MCP接続、external write、負荷・障害・replay試験は未実施。"
    },
    {
      "heading": "BENCHMARK_OR_EVAL",
      "text": "Airflowはdag.test、Dagsterはtestability/asset checks導線、Prefectはmonitoring/stateを記載するが、共通dataset、ground truth、grader、threshold、cross-product performance、agent success rate、cost per accepted outcomeはない。製品のmonitoring/evaluation機能と測定結果を混同しない。UNKNOWN。"
    },
    {
      "heading": "SECURITY / PRIVACY / AUDIT / COST / OPERABILITY",
      "text": "Security=executor/worker isolation、secrets、provider/plugin、RBAC、MCP read-only、network egress。Privacy=data assets、workflow inputs、logs、metadata DB、model/tool payload。Audit=DAG/asset/flow version、schedule/trigger、task/run/state、retry、operator/approval、lineage/log、admin change。Cost=compute/worker、managed control plane、metadata/storage、provider/API、model/tool、retry/backfill。Operability=dependency pinning、backfill/partition、idempotency、retry/dead-letter、zombie detection、asset freshness、scheduler/worker scaling、rollback/replay、log completeness。"
    },
    {
      "heading": "SAFE_WORDING_FOR_FUTURE_BOOK",
      "text": "「Airflow 3.3.1はschedule・task・dependency・retry・timeoutを持つDag実行、Dagsterはasset/lineage/observability中心のdata orchestration、Prefect 3はPython flowのstate・retry・timeout・deploymentを公式Docsで説明している。これらはAgentの確率的判断を支える非LLMの実行・データ制御面として分離できるが、exactly-once・LLM品質・全deploymentのSLOは別途検証が必要である。」"
    },
    {
      "heading": "UPDATE_WORK_HANDOFF",
      "text": "EA-156を三製品の比較棚として保持し、Airflow=task/DAG scheduling、Dagster=asset/lineage、Prefect=Python flow/stateというclaim relationを混同しない。将来本文ではAgent→bounded decision→deterministic workflow/data planeのhandoff、human approval、idempotency、retry/rollback、audit/costをTEST_PROFILEとして追加する。"
    },
    {
      "heading": "OPEN_UNKNOWN",
      "text": "current release/API parity、cross-product integration with agents/MCP、exact retry/idempotency semantics、managed/OSS feature gates、RBAC/data residency、SLO/benchmark、scheduler/worker failure, cost, public incidents。"
    },
    {
      "heading": "STOP_CONDITION",
      "text": "Airflow・Dagster・Prefectを一つの製品・一つの性能値・一つのOSS/managed契約として扱わない。公式のdata orchestration説明をagent autonomyやexactly-once保証へ外挿せず、Agent連携はINFERENCE/PROPOSALとして明示する。\nUNIT_CLOSE_STATUS: INDIVIDUAL_BOUNDED_CLOSE / EVIDENCE_RECORDED / UNKNOWN_PRESERVED\n===== RUN CLOSE / HANDOFF =====\nINDIVIDUAL_PACKET_COUNT: 6/6（EA-151..EA-156）"
    },
    {
      "heading": "PRIMARY_SOURCE_RECORD",
      "text": "Zapier, Make, Workato, Pipedream, Temporal, Apache Airflow, Dagster, and Prefect official/author-maintained records with canonical URLs and locators are recorded; Temporal issue #8901 is retained as a bounded counterevidence report."
    },
    {
      "heading": "CLAIM_SEPARATION",
      "text": "EA-151..EA-156 each has an independent topic, findings, limits/counterevidence/failure envelope, availability gates, implementation state, benchmark/eval boundary, safe wording, handoff, open unknowns, and stop condition. EA-156 keeps Airflow, Dagster, and Prefect subclaims separate."
    },
    {
      "heading": "EVIDENCE_BOUNDARY",
      "text": "Product documentation establishes documented feature statements at the recorded access/version boundary, not universal plan/region/tenant availability, production safety, quality, ROI, or SLO. Vendor metrics and customer/product claims are not promoted to independent benchmark evidence.\nLIVE_SIDE_EFFECTS: 0."
    }
  ],
  "human_url": "/tools/ea-156-airflow-dagster-prefect",
  "markdown_url": "/agent/article.md?path=%2Ftools%2Fea-156-airflow-dagster-prefect",
  "json_url": "/agent/article.json?path=%2Ftools%2Fea-156-airflow-dagster-prefect"
}