Branching выбирает, какие downstream task_id выполнить, а остальные пропускает (skipped). Логика в callable возвращает id или список id.
Разбор
- Независимые ветки join'ят через trigger rules.
- По умолчанию downstream после skip может вести себя неочевидно — учите trigger_rule.
- Не злоупотребляйте ветвлением вместо отдельных DAG.
- Логируйте выбранную ветку.
Итог
Branching маршрутизирует граф; корректный join требует явных trigger rules.