메시지 큐와 이벤트 기반 스케줄링
메시지 큐와 이벤트 기반 스케줄링 (Message Queues)
Airflow는 기본적으로 시간 기반·의존성 기반으로 워크플로를 스케줄링하도록 설계돼 있어요. 그런데 요즘 데이터 아키텍처는 근실시간 처리와, 메시지 큐 같은 다양한 소스의 이벤트에 반응하는 능력을 자주 요구하죠. Airflow는 네이티브 이벤트 기반 기능을 갖고 있어서, 외부 이벤트로 트리거되는 워크플로를 만들 수 있어요. 이렇게 하면 더 반응적인 데이터 파이프라인을 구성할 수 있어요.
이벤트 기반 스케줄링
메시지 큐(Message Queues)는 DAG의 외부 이벤트 기반 스케줄링 능력을 노출하는 방법이에요. Airflow는 폴링 기반의 이벤트 기반 스케줄링을 지원해요. 내장된 airflow.triggers.base.BaseTrigger 클래스를 사용해 Triggerer가 외부 메시지 큐를 폴링할 수 있게 하는 거예요. 이를 통해 큐에 메시지가 도착하거나 데이터베이스가 변경되는 것 같은 외부 이벤트로 트리거되는 워크플로를 효율적으로 만들 수 있어요.
Airflow는 외부 리소스의 상태를 계속 감시하고, 외부 리소스가 특정 상태에 도달하면 asset을 업데이트해요. 이를 위해 Airflow Triggers를 활용해요. Trigger는 외부 리소스 상태를 폴링하는 역할을 하는 작고 비동기적인 Python 코드 조각이에요.
지원되는 메시지 큐 목록은 공식 문서의 Message Queues 페이지에서 확인할 수 있어요.