Lee-W opened a new pull request, #67523:
URL: https://github.com/apache/airflow/pull/67523

   Extend the SharedStreamManager + BaseEventTrigger shared-stream API from PR 
#66584 so it can also host upstreams that need a producer-held handle to 
advance (Kafka manual commit, SQS delete / visibility extend, Pub/Sub ack_id, 
Service Bus peek-lock).
   
   Producer triggers opt in by overriding the new
   `BaseEventTrigger.advance_shared_stream` classmethod and yielding `(event, 
broker_payload)` tuples from `open_shared_stream`. Subscribers receive an 
`AckToken` alongside each raw event; the manager invokes the producer's advance 
hook once all subscribers in scope at fan-out time have called `await 
token.ack()`. Triggers that don't override the hook keep the existing fast path 
(subscribers see raw events, no ack table), so `DirectoryFileDeleteTrigger` is 
unaffected.
   
   Slow subscribers are bounded by a per-event ack timeout 
(`SharedStreamManager(ack_timeout=...)`, default 300s); a single slow 
subscriber is force-failed via the existing `_PollFailure` path without 
blocking siblings. Broker advance failures are logged via `_on_advance_done` 
rather than swallowed.
   
   Closes #67179
   
    <!-- SPDX-License-Identifier: Apache-2.0
         https://www.apache.org/licenses/LICENSE-2.0 -->
   
   <!--
   Thank you for contributing!
   
   Please provide above a brief description of the changes made in this pull 
request.
   Write a good git commit message following this guide: 
http://chris.beams.io/posts/git-commit/
   
   Please make sure that your code changes are covered with tests.
   And in case of new features or big changes remember to adjust the 
documentation.
   
   Feel free to ping (in general) for the review if you do not see reaction for 
a few days
   (72 Hours is the minimum reaction time you can expect from volunteers) - we 
sometimes miss notifications.
   
   In case of an existing issue, reference it using one of the following:
   
   * closes: #ISSUE
   * related: #ISSUE
   -->
   
   ---
   
   ##### Was generative AI tooling used to co-author this PR?
   
   <!--
   If generative AI tooling has been used in the process of authoring this PR, 
please
   change below checkbox to `[X]` followed by the name of the tool, uncomment 
the "Generated-by".
   -->
   
   - [ ] Yes (please specify the tool below)
   
   <!--
   Generated-by: [Tool Name] following [the 
guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions)
   -->
   
   ---
   
   * Read the **[Pull Request 
Guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#pull-request-guidelines)**
 for more information. Note: commit author/co-author name and email in commits 
become permanently public when merged.
   * For fundamental code changes, an Airflow Improvement Proposal 
([AIP](https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow+Improvement+Proposals))
 is needed.
   * When adding dependency, check compliance with the [ASF 3rd Party License 
Policy](https://www.apache.org/legal/resolved.html#category-x).
   * For significant user-facing changes create newsfragment: 
`{pr_number}.significant.rst`, in 
[airflow-core/newsfragments](https://github.com/apache/airflow/tree/main/airflow-core/newsfragments).
 You can add this file in a follow-up commit after the PR is created so you 
know the PR number.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to