Dimensionando com Airflow 3.2: Quando Postergar e Quando Usar Operadores Assíncronos Nativos
Aprofundamento CEVIU
Aprofundamento
O Airflow 3.2 não é só mais uma atualização incremental: ele resolve um gargalo antigo de arquitetura, a pressão no triggerer e no banco de metadados, ao trazer execução assíncrona nativa para o PythonOperator, sem exigir que o usuário gerencie event loops ou migre para operadores deferíveis. Isso muda o jogo para pipelines de micro-batch com centenas ou milhares de chamadas concorrentes (APIs, SFTP, webhooks), onde antes cada tarefa consumia um slot completo de worker e passava pelo ciclo completo de agendamento/triggerer/execução. Agora, dentro de um único slot, múltiplas operações de I/O podem rodar em paralelo sob o mesmo event loop, reduzindo drasticamente latência e uso de recursos. A combinação com Dynamic Task Mapping, estável desde a versão 2.3, permite que essa concorrência seja orquestrada dinamicamente, com base em dados reais do runtime, sem pré-definição estática de tarefas.
Essa mudança não é só técnica: ela desloca o custo de escalabilidade do lado da infraestrutura (mais workers, mais triggerers) para o lado da lógica de código, onde os engenheiros de dados já operam. O suporte a asset partitions, também novo na 3.2, complementa isso ao permitir respostas granulares a eventos de dados, não apenas a gatilhos temporais. Juntos, os dois recursos sinalizam uma virada clara: o Airflow está migrando de uma ferramenta de agendamento cronológico para um sistema de reação a eventos de dados, com controle preciso de dependências entre ativos.
Por que isso importa
Para times que rodam pipelines com alta frequência de I/O, como ingestão de APIs externas, sincronização de sistemas legados ou processamento de lotes pequenos mas numerosos, o ganho não é marginal. Testes internos da Astronomer com carga de 5.000 requisições HTTP mostraram redução de 78% no tempo total de execução e queda de 92% na carga no banco de metadados, comparado à abordagem com operadores deferíveis. Isso significa menos instâncias de triggerer, menor custo operacional e maior previsibilidade no SLA de DAGs críticos. Além disso, eliminar a dependência do triggerer simplifica a implantação, especialmente em ambientes com restrições de rede ou compliance rigoroso, onde expor o componente triggerer era um ponto fraco de segurança.
Linha do tempo
Lançamento do Airflow 3.0, com arquitetura distribuída e execução remota de tarefas
Lançamento do Airflow 3.1, com suporte a human-in-the-loop e execução síncrona de DAG
Disponibilização da versão beta 3.2.0beta2 com suporte assíncrono nativo no PythonOperator
Lançamento oficial do Airflow 3.2 com AIP-98 implementado
Publicação da análise técnica sobre dimensionamento com Airflow 3.2 e uso de operadores assíncronos
Perguntas frequentes
Qual é a diferença prática entre usar PythonOperator assíncrono e um operador deferível?
O operador deferível transfere a execução para o triggerer, que fica responsável por pollear o estado até a conclusão, gerando sobrecarga no banco de dados e no próprio triggerer. Já o PythonOperator assíncrono executa tudo no worker, com concorrência real dentro do mesmo slot, sem intermediários. Não há roundtrip nem dependência do triggerer.
Preciso reescrever meus DAGs para usar o novo PythonOperator assíncrono?
Sim, mas de forma controlada. Você precisa substituir funções síncronas por funções assíncronas (com async/await) e usar o novo parâmetro `python_callable_async=True`. Operadores existentes continuam funcionando normalmente, a mudança é opt-in, não forçada.
Dynamic Task Mapping com assincronia funciona em todos os executores?
Funciona nos executores Celery, Kubernetes e Process. Não funciona no SequentialExecutor (destinado a desenvolvimento local) nem no LocalExecutor com configuração padrão, pois ambos não suportam execução concorrente de tarefas no mesmo processo.
Posso misturar tarefas assíncronas e síncronas no mesmo DAG?
Sim. O Airflow 3.2 trata cada tarefa de forma isolada. Um DAG pode ter operadores assíncronos, deferíveis e síncronos convencionais lado a lado, desde que os requisitos de executor e configuração sejam atendidos.
Fontes
- medium.comfonte original
- Categoria
- CEVIU Dados
- Publicado
- 12 de março de 2026
- Editoria
- CEVIU Dados
