+1
In my org we never use Airflow to compute anything. We only use a single operator: PythonOperator.
All business and data access logic is encapsuled in REST APIs. Our DAGs are responsible for calling those APIs in the correct order, in the correct time, retrying when needed. I really dislike using Airflow for anything else, as it generally becomes a huge mess.