```plaintext %% Dual Workflow Engine Strategy (ADR-0009) %% Flowchart showing Argo vs Kubeflow decision and integration flowchart TB subgraph trigger["🎯 Workflow Triggers"] nats["NATS Event"] api["API Call"] schedule["Cron Schedule"] end subgraph decision["❓ Which Engine?"] question{{"Workflow Type?"}} end subgraph kubeflow["🔬 Kubeflow Pipelines"] direction TB kfp_train["ML Training
✅ Component caching"] kfp_eval["Model Evaluation
✅ Metric tracking"] kfp_exp["Experiment Comparison
✅ MLflow integration"] end subgraph argo["⚡ Argo Workflows"] direction TB argo_dag["Complex DAG
✅ Advanced control flow"] argo_batch["Batch Processing
✅ Parallelization"] argo_ingest["Document Ingestion
✅ Simple steps"] end subgraph hybrid["🔗 Hybrid Pattern"] direction TB argo_orch["Argo Orchestrates"] kfp_step["KFP via API"] argo_orch --> kfp_step end subgraph integration["📡 Integration Layer"] direction TB events["Argo Events
EventSource + Sensor"] end %% Flow from triggers nats --> events api --> decision schedule --> events events --> decision %% Decision branches question -->|"ML training
with caching"| kubeflow question -->|"Complex DAG
batch jobs"| argo question -->|"ML + complex
orchestration"| hybrid %% Kubeflow use cases kfp_train --> kfp_eval kfp_eval --> kfp_exp %% Argo use cases argo_dag --> argo_batch argo_batch --> argo_ingest classDef trigger fill:#f39c12,color:black classDef kubeflow fill:#4a90d9,color:white classDef argo fill:#ef6c00,color:white classDef hybrid fill:#8e44ad,color:white classDef integration fill:#27ae60,color:white class nats,api,schedule trigger class kfp_train,kfp_eval,kfp_exp kubeflow class argo_dag,argo_batch,argo_ingest argo class argo_orch,kfp_step hybrid class events integration ```