Optimizing Airflow DAGs with Custom Macros: A Solution for Production Challenges

Anirban Saha
14 min readNov 24, 2023

Introduction

Airflow users often employ macros to enhance their DAGs by dynamically passing data during runtime. There are numerous detailed blog posts available on the subject, with contributions from experts like Marc Lamberti.

In this article, I aim to delve into a recent challenge we encountered with our production DAGs and invite valuable feedback from our readers to refine our solution further.

The focus of this exploration centers on the utilization of custom macros to create functions that seamlessly integrate into your DAG definitions, eliminating the need for repeated function execution every time the DAG undergoes a refresh.

Hey there! If you don’t have a Medium subscription yet, no worries — just use this link to enjoy the blog. 😊

If you want to consume this article in the form of a NotebookLM generated Podcast, give this a try:

Setting Up The Context

Sometimes we might have a DAG with a PythonOperator, where the op_kwargs are obtained by calling some custom function (get_bucket_name in the example below):

--

--

Anirban Saha
Anirban Saha

Written by Anirban Saha

Rediscovering self love. Love documenting my travel experiences and writing about the little tech I know!

No responses yet