This chapter covers
- Examining how to define task dependencies in an Airflow DAG
- Explaining how to implement joins using trigger rules
- Showing how to make tasks conditional on certain conditions
- Giving a basic idea of how trigger rules affect the execution of your tasks
- Demonstrating how to use XComs to share state between tasks
- Examining how Airflow 2’s Taskflow API can help simplify Python-heavy DAGs
In previous chapters, we saw how to build a basic DAG and define simple dependencies between tasks. In this chapter, we will further explore exactly how task dependencies are defined in Airflow and how these capabilities can be used to implement more complex patterns, including conditional tasks, branches, and joins. Toward the end of the chapter, we’ll also dive into XComs (which allow passing data between different tasks in a DAG run), and discuss the merits and drawbacks of using this type of approach. We’ll also show how Airflow 2’s new Taskflow API can help simplify DAGs that make heavy use of Python tasks and XComs.