Design Patterns for Large-Scale Data Processing Based on Data Workflow Management with Toss Developers
Learn the process of building data pipelines using Apache Airflow, from the basics to practical application. Understand the core concepts and architecture of Airflow, and master advanced design patterns frequently used in the field—such as dynamic DAGs, parallel processing, distributed processing, and custom operators—through hands-on practice. Configure a practice environment using Python and Docker to develop the practical skills needed to design and operate real-world workflows.
I'm a developer working at Toss who prepared this lecture together on the topic of Airflow, which can be called the flower of batch processing.
While the service called Airflow is often quite unfamiliar to many people, as services grow larger, workflow services like this become extremely useful. This is because it's the service that's given top priority when handling large-scale batch processing.
Even if you're in an environment where you don't need to learn Airflow yet, the various perspectives and concepts taught in this lecture will definitely help you in your development and study environment. I don't think this is a lecture that simply teaches only Airflow.
I ask for your great interest and hope you'll look forward to the next lecture as well.
Thank you!!
5.0
dellahong
62% enrolled
I've been using Airflow for 3 years now, but as the scale of data processing has grown, frequent errors have started occurring, so I became curious about how other companies use it and decided to take this course. It's been incredibly helpful! Having both conceptual understanding and hands-on practice of Airflow in a practical context really helps with understanding and applying it :)
5.0
텐버거!
100% enrolled
I think this is a meaningful lecture that introduced me to various concepts from perspectives I had never seen or couldn't see before. The content itself was... how should I put it, it seemed like content that broadened my knowledge. Thank you so much for the great lecture.
Tenbagger!
What you will gain after the course
Understanding the Concepts and Necessity of Apache Airflow
Understanding the structure of Airflow Core Components
Dynamic DAG Design Methods
TaskGroup and Dependency Management Patterns
Parallel Processing and Large-Scale Data Reprocessing Strategies
Custom Operators and the utilization of encapsulation and decorators accordingly
Python & Docker-based hands-on environment setup
DATA WORKFLOW MANAGEMENT
It does work with cron jobs
If you link the extraction, processing, and loading tasks using Cron, it generally works. The problem arises when the third step fails. You have to figure out where it stopped, whether the first two steps need to be rerun, and how to fill in the missing data from yesterday.
Difficulty: Beginner
Python · Docker
Two practice sections
Section Quizzes
Unlimited access period
DAG · daily_sales_pipeline1 failed · 4 queued
extract_orders
clean_payload
load_warehouse
aggregate_daily
notify_slack
successfailedqueuedno status
This screen is almost everything that Airflow provides. Which task follows which, where it stopped, and what is still queued is recorded in the system rather than in human memory.
01 / Problem
The third step failed
If a pipeline linked by cron jobs breaks in the middle, everything that follows depends entirely on human judgment.
QUESTION 1
Where did it stop?
Open the script logs and find the last line recorded. If they are scattered across multiple servers, the workload increases accordingly.
QUESTION 2
How to handle the first two
Read the code to check if it is safe to rerun steps that have already succeeded and whether running them twice will result in duplicate data.
QUESTION 3
Who will fill in for yesterday?
Manually calculate the failed intervals and re-execute them one by one. If the range is set incorrectly, it leads directly to an accident.
The difference becomes apparent not when things are running smoothly, but when they fail. If a person is manually calculating the reprocessing range, that is exactly where a workflow is needed.
02 / Start
This is an actual conversation that took place.
At first, Hong also asked, "How is this different from a Cron job?" That question became the first section of this lecture.
TToss DeveloperHong, do you happen to know about Airflow?
HHongI've heard of it, but I haven't used it. Why?
TToss DeveloperYou know that workflow lecture we made last time? I was thinking it would be good to cover Airflow as well based on that. I've only ever used Airflow.
HHongBut I haven't used Airflow before. What am I supposed to do?
TToss DeveloperIt's okay. I'm currently using it in practice, so I can take the lead in teaching you.
HHongAlright. But do we really have to use this? It doesn't seem much different from regular batch processing or cron jobs, does it?
TToss DeveloperThe fact that you're thinking that is exactly why you need to use Airflow. There is a difference from cron jobs. It's the same reason why you should use a workflow.
03 / Structure
It consists of four parts.
When you start Airflow, several processes run together. You need to know what each one does to know where to look when a problem occurs.
WebServer
This is the part that renders the grid screen shown above. It is the place where you can visually check the DAG list and execution history.
Scheduler
It finds tasks that are ready to run and puts them in the queue. It acts as the heart of the system, and most "why isn't it running" issues are decided here.
Executor
It actually runs the tasks. Depending on which Executor you use, it determines whether the tasks run on a single machine or are distributed across multiple machines.
MetaDataDB
The status of all DAGs and tasks is stored here. Each color in the grid above represents a row in this database.
Section 3 is entirely dedicated to digging into these four. Once you establish the structure first, the discussions on parallel processing and the Celery Executor that follow will be much easier to grasp.
04 / Curriculum
What is covered and in what order
In the first part, we will cover why we use it and establish the structure, and in the latter part, we will set up the environment and run the patterns ourselves.
01
Course Introduction and Materials
Course Introduction
Practice Source Code Materials
Lecture Content Summary Materials
Lecture Notes
02
Why We Want to Build a Data Pipeline?
What is Airflow?
Batch Job & Cron Job Vs Airflow
Disadvantages of Apache Airflow and Anti-patterns for its Adoption
Section 2 Quiz
03
Airflow Core Components And Architecture
Introduction to the Overall Core Components Architecture
WebServer Components Deep Dive
Scheduler Components Deep Dive
Executor Components Deep Dive
MetaDataDB Components Deep Dive
Section 3 Quiz
04
DAG & Task Advanced Design Patterns
Dynamic DAG Generation Patterns [ Dynamic DAG ]
Cross-DAG Dependencies and Data Dependencies
Designing complex workflows using TaskGroup
Reusable Custom Operator
Section 4 Quiz
05
Parallel and Distributed Processing and Large-Scale Reprocessing in Airflow
Parallel and Distributed Processing Strategies in Airflow
Backfill Strategies and Large-Scale Data Reprocessing
06
Lightweight Environment Setup Using Python & Docker
Building a lightweight environment using Docker
Setting up a basic practice environment using Python
07
Hands-on!! Learning Airflow through Practice
Dynamic DAG Generation Patterns
TriggerDagRun & TaskSensor dependency relationship practice
EDA patterns in Airflow: Patterns for utilizing Dataset Dependencies
Throughput enhancement patterns by introducing parallel processing patterns in batch processing
Section 7 Quiz
08
Additional Airflow practices that would be good for you to know
Implementing Notifications using Slack
Distributed processing of large-scale batch jobs using Celery Executor
Batch processing practice using Celery Executor and Redis distributed processing
Section 8 Quiz
05 / Practice
What to run it with
All you need are Python and Docker. In the final section, we will even run distributed processing by connecting Celery Executor and Redis.
Python 3
Docker Compose
Apache Airflow
Celery Executor
Redis
Slack Notification
The practice source code and lecture summary materials are included in Section 1. Even if you don't have a deep knowledge of Python, you will have no trouble understanding how Airflow operates.
It doesn't end with just listening to theory. Two entire sections are dedicated to hands-on practice, and we will go all the way to distributed processing at the end.
A backend developer who has chained pipelines together with cron and is manually filling in the gaps every time a failure occurs.
Using it, but don't know the structure
Those who are already running Airflow but don't understand why it works that way, and find themselves lost whenever a problem arises.
Calculating reprocessing by hand
A working developer who manually counts failed intervals and re-runs them.
I want to expand into the data field.
A developer looking to expand their scope from server development into data engineering.
07 / Current Market
Stories about AI replacing developers
New hiring is decreasing, and companies are looking to hire only those who are proven. These are articles that have come out in recent months.
2025Krafton, which achieved record-breaking performance, has begun downsizing its workforce. The reason given was its transition into an 'AI-first' company.
2025SW specialized companies are halting the recruitment of new developers. There are also projections that the hiring of entry-level developers will plummet by 77%.
202553% of game designers answered, "AI will replace my job." Cases of recommended resignation have also been reported.
As companies become more anxious, those being hired must demonstrate a clearer distinction. Ultimately, studying is something you do on your own, but depending on what you look at and from what perspective, the depth of explanation you can provide will differ, even when spending the same amount of time.
08 / Reviews
Stories from those who took the course first
I copied this directly from the Inflearn course reviews.
I have been using Airflow for three years, but as the scale of data processing grew, frequent errors began to occur. I decided to take this course because I wanted to see how other companies are using it. It is helping me so much. The practical concepts and hands-on exercises of Airflow are very helpful for understanding and applying it in the field.
dellahong · Written after 62% completion
It seems like this is the first time I've seen you use a language other than Spring or Java in your lectures. Still, I was able to follow along without any major discomfort. While knowing Python would be a plus, I think this is a course where you don't necessarily need to know it if your goal is to utilize and test Airflow.
Jlos Ho · Written after 90% completion
I took this course to learn quickly during the Chuseok holiday. I didn't have high expectations, but I think it was truly helpful. I was able to learn a lot not only about Airflow but also from a general programming and developer's perspective.
Lilboy_! · Written after 100% completion
09 / Created by
Led by a current developer at Toss.
Someone who uses it every day in practice created the materials, while Hong filmed alongside them, asking questions from the perspective of a first-time learner.
TOSS · BACKEND ENGINEER
Toss Developer
I majored in Computer Science at a regional university and worked at Naver; now, I am developing backends at Toss. The topics of this lecture are things I use every day in practice.
"The very question of how Airflow differs from a cron job is the answer to why you should use it."
Knowledge Sharer · Pangyo Platform Server Developer
Hong
I started as a non-major and am currently developing platform backends in Pangyo. As a principle, I create courses not alone, but together with talented colleagues working in the industry.
"At first, I didn't know how it was different from CronJob either. That's where we begin."
10 / Questions
Airflow Course Frequently Asked Questions
Q.Why use Airflow when CronJobs can do the job?
⌄
The second lecture of Section 2 covers exactly that comparison. Cron jobs simply execute at a specific time and are unaware of whether the preceding task succeeded. In contrast, Airflow manages dependencies and execution statuses between tasks, so the system keeps a record of where a failure occurred and from which point it needs to be restarted. Conversely, situations where you should not use Airflow are also covered in the same section.
Q.Do I need to be proficient in Python?
⌄
Since DAGs are written in Python, knowing it will definitely make things easier. However, this course does not teach Python syntax itself but focuses on Airflow's operations and design patterns. Practice source code is provided as material, and there are reviews stating, "Even without knowing Python, there was no trouble utilizing and testing Airflow."
Q.How do I set up the practice environment?
⌄
In Section 6, we will build a lightweight environment using Docker and configure the Python practice environment. On top of that, we will run dynamic DAGs, dependency relationships using TriggerDagRun and Sensors, Dataset Dependencies, TaskGroups, Custom Operators, and parallel processing patterns one by one.
Q.Does it also cover distributed processing?
⌄
Section 5 covers parallel and distributed processing strategies, as well as methods for rerunning large volumes of data using Backfill. In the final section, we go as far as a hands-on exercise for distributed processing of batch tasks by connecting Celery Executor and Redis.
Q. I'm already using Airflow; is it worth taking this course?
⌄
The points where current users usually get stuck are mostly related to structure and design. The sections that delve into core components one by one, as well as the sections covering dynamic DAGs, cross-DAG dependencies, and custom operators, are designed for that purpose. Among the course reviews, there is one that says, "I've been using it for three years, but as the scale grew and errors became more frequent, I took this course because I was curious about different approaches."
Rerun from the point of failure
When order and dependencies are documented as code, incident response shifts from human memory to the system.
There is a dedicated space to discuss everything from parts of the lecture you get stuck on, questions that arise while applying concepts to your own service, to career advice. The places where you get stuck are usually where others get stuck as well.
I started studying development after becoming interested in it while idling at home, and I am currently responsible for platform server development in Pangyo. I am continuing my activities as a knowledge sharer because I want to provide you with the methods I used to study, as well as the various problems and solutions you may encounter in practice.
These lectures are not created solely through my own knowledge. There are others who collaborate on every lecture.
I've been using Airflow for 3 years now, but as the scale of data processing has grown, frequent errors have started occurring, so I became curious about how other companies use it and decided to take this course. It's been incredibly helpful! Having both conceptual understanding and hands-on practice of Airflow in a practical context really helps with understanding and applying it :)
Thank you for the great lecture. I think this is the first time I've seen you use a language other than Spring and Java in your lectures. Still, I watched it well without any major inconveniences, and I think it would be even better to watch if you know Python, but if you simply want to utilize Airflow, test it out, and get a taste of it, so to speak, I think it's a lecture you don't necessarily need to know it for.
Thank you again for such a wonderful lecture this time, and I'm proud that you're gradually improving your teaching skills and I feel like I'm growing along with you 😊😊 I look forward to your continued good work with great topics in the future!
Hello Jios Ho, thank you for leaving a review. It seems like language constraints are becoming less restrictive these days. So this time, I prepared a lecture with some unique characteristics. Thank you!
I think this is a meaningful lecture that introduced me to various concepts from perspectives I had never seen or couldn't see before. The content itself was... how should I put it, it seemed like content that broadened my knowledge. Thank you so much for the great lecture.
Tenbagger!
I'm a developer working at Toss who prepared this lecture together on the topic of Airflow, which can be called the flower of batch processing.
While the service called Airflow is often quite unfamiliar to many people, as services grow larger, workflow services like this become extremely useful. This is because it's the service that's given top priority when handling large-scale batch processing.
Even if you're in an environment where you don't need to learn Airflow yet, the various perspectives and concepts taught in this lecture will definitely help you in your development and study environment. I don't think this is a lecture that simply teaches only Airflow.
I ask for your great interest and hope you'll look forward to the next lecture as well.
Thank you!!