This is an automated email from the ASF dual-hosted git repository.

o-nikolas pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new 6cb5d040088 Add docs for multi-team triggerer support (#67608)
6cb5d040088 is described below

commit 6cb5d0400884d3788f3182153cbe7cfd027ad839
Author: Ramit Kataria <[email protected]>
AuthorDate: Wed Jun 3 16:15:03 2026 -0700

    Add docs for multi-team triggerer support (#67608)
    
    * Add docs for multi-team triggerer support
    
    Add a `Team-scoped Triggerer` section to the multi-team documentation
    covering the `--team-name` CLI argument, behavior for team-scoped vs
    global triggerers, interaction with `--queues`, and an example deployment.
    
    Add a tip in the deferring docs pointing users toward `--team-name` as
    the native multi-team solution alongside the existing `--queues` docs.
    
    Remove `Async support` from the `Work in Progress` list since team-scoped
    triggerer support is now implemented/in PR.
---
 .../docs/authoring-and-scheduling/deferring.rst    |  8 ++++
 airflow-core/docs/core-concepts/multi-team.rst     | 45 +++++++++++++++++++++-
 2 files changed, 52 insertions(+), 1 deletion(-)

diff --git a/airflow-core/docs/authoring-and-scheduling/deferring.rst 
b/airflow-core/docs/authoring-and-scheduling/deferring.rst
index 62f5d0b0158..0e54a9ca593 100644
--- a/airflow-core/docs/authoring-and-scheduling/deferring.rst
+++ b/airflow-core/docs/authoring-and-scheduling/deferring.rst
@@ -494,6 +494,14 @@ Under some circumstances, it may be desirable to assign a 
Trigger to a specific
 * In a multi-tenant Airflow system where you run a distinct set of 
``triggerers`` per team.
 * Running distinct sets of ``triggerers`` hosts, where each set of hosts are 
configured for different trigger operations (e.g. each set of triggerers may 
have different cloud permissions).
 
+.. tip::
+
+    If you are using :doc:`Multi-Team mode</core-concepts/multi-team>`, the 
``--team-name`` option provides
+    native team-scoped triggerer assignment for all trigger types 
(task-created, event-driven, and callback).
+    See :ref:`Team-scoped Triggerer <multi-team-triggerer>` in the Multi-Team 
documentation.
+    The ``--queues`` option described below is an older, queue-based mechanism 
that can be combined with
+    ``--team-name`` if needed.
+
 To enable queue assignment for triggers, do the following:
 
 1. Set the :ref:`config:triggerer__queues_enabled` config value to ``true``. 
This will ensure when tasks defer, they pass their assigned task queue to the 
newly registered trigger instance.
diff --git a/airflow-core/docs/core-concepts/multi-team.rst 
b/airflow-core/docs/core-concepts/multi-team.rst
index eb6371701b6..dd964961910 100644
--- a/airflow-core/docs/core-concepts/multi-team.rst
+++ b/airflow-core/docs/core-concepts/multi-team.rst
@@ -65,6 +65,7 @@ Teams are associated with Dags through **Dag Bundles**. A Dag 
bundle can be owne
 - All Dags within that bundle belong to that team
 - Tasks in those Dags inherit the team association
 - All Callbacks associated with those Dags also inherit the team association
+- Triggers created by those Dags' tasks inherit the team association
 - The scheduler uses this relationship to determine which executor to use
 
 .. note::
@@ -503,6 +504,49 @@ When Multi-Team mode is enabled, the scheduler performs 
additional logic to dete
     teams share the same metadata database and common Airflow infrastructure. 
For absolutely strict security
     requirements, consider separate Airflow deployments.
 
+.. _multi-team-triggerer:
+
+Team-scoped Triggerer
+---------------------
+
+When Multi-Team mode is enabled, a triggerer should be scoped to each specific 
team using the ``--team-name`` CLI argument. A team-scoped triggerer processes 
deferred tasks (triggers) belonging to that team's Dags. This allows teams to 
run isolated triggerer instances with independent capacity and failure domains.
+
+Configuration
+^^^^^^^^^^^^^
+
+Start a team-scoped triggerer by passing ``--team-name``:
+
+.. code-block:: bash
+
+    # Triggerer for team_a only
+    airflow triggerer --team-name team_a
+
+    # Triggerer for team_b only
+    airflow triggerer --team-name team_b
+
+    # Global triggerer — processes triggers from Dags with no team association
+    airflow triggerer
+
+Startup validation ensures that ``core.multi_team`` is enabled and the 
specified team exists in the database.
+
+Behavior
+^^^^^^^^
+
+- **Team-scoped triggerer** (``--team-name team_x``): Only picks up triggers 
whose originating Dag belongs to a bundle mapped to ``team_x``.
+- **Global triggerer** (no ``--team-name``): Only picks up triggers whose 
originating Dag belongs to a bundle with no team assignment.
+- **Multi-Team disabled** (``core.multi_team = False``): ``--team-name`` is 
rejected. No filtering occurs and all triggerers process all triggers (existing 
behavior).
+
+Interaction with ``--queues``
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Team filtering and queue filtering are orthogonal — they combine as AND 
conditions. For example, a triggerer started with ``--team-name team_a --queues 
q1,q2`` only processes triggers that both belong to ``team_a`` and were 
deferred from tasks in queues ``q1`` or ``q2``.
+
+.. note::
+
+    Ensure that at least one triggerer is running for every team, otherwise 
that team's triggers will
+    remain unassigned until one starts — the same applies to every queue when 
``--queues`` is used. If you
+    combine ``--team-name`` and ``--queues``, this requirement extends to each 
team-and-queue combination.
+
 .. _multi-team-asset-event-filtering:
 
 Team-Based Asset Event Filtering
@@ -673,7 +717,6 @@ Work in Progress
 Multi-Team mode is currently an experimental feature in preview. It is not yet 
fully complete and may be subject to changes without warning based on user 
feedback. Some missing functionality includes:
 
 - Dimensional metrics by team
-- Async support (Triggers, Event Driven Scheduling, async Callbacks, etc)
 - Some UI elements may not be fully team-aware
 - Full provider support for executors and secrets backends
 - Command and Secrets based lookup for team based configuration

Reply via email to