Consensus has been reached. You can see the change here: https://github.com/apache/airflow/pull/46391
Thanks. On 2025/01/31 00:09:15 Vikram Koka wrote: > Vincent, > > Thank you for taking the feedback and the quick update. > > Vikram > > On 2025/01/29 19:12:17 "Beck, Vincent" wrote: > > Hello everyone, > > > > During my AIP-82 demo at the last Airflow 3 dev call, I highlighted > > potential issues if users select an incorrect trigger when scheduling DAGs > > using event-driven scheduling. For example, using `S3KeyTrigger`, which > > fires whenever a specific file exists in an S3 bucket: > > > > ``` > > trigger = S3KeyTrigger(bucket_name="<my-bucket>", bucket_key="<my-file>") > > asset = Asset("s3_asset", watchers=[ > > AssetWatcher(name="s3_asset_watcher", trigger=trigger) > > ]) > > > > with DAG( > > dag_id="example_dag", > > schedule=[asset], > > catchup=False, > > ): > > ... > > ``` > > > > This setup would schedule the DAG `example_dag` whenever `<my-file>` exists > > in `<my-bucket>`, and as long as it exists. If the file is never deleted, > > the DAG will continue scheduling indefinitely. While this is not a bug, it > > is a potential misuse of the feature that we should mitigate to prevent > > users from running into this issue. > > > > After a discussion on Slack > > (https://apache-airflow.slack.com/archives/C06K9Q5G2UA/p1737999509008529), > > the following solution emerged: introduce a new base class, > > `BaseEventTrigger`, which will be an empty subclass of `BaseTrigger`: > > > > ``` > > class BaseEventTrigger(BaseTrigger): > > ... > > ``` > > > > The `AssetWatcher` signature will be updated to accept only > > `BaseEventTrigger` instead of `BaseTrigger`. This means that only triggers > > inheriting from `BaseEventTrigger` can be used to schedule DAGs based on > > events. > > > > Benefits: > > - We limit the set of triggers users can use with event driven scheduling. > > Allowing all triggers to be used to schedule DAGs does not make sense and > > can lead to some bigger issues (scheduling DAGs indefinitely.) > > - Developers can explicitly mark a trigger as suitable for event-driven > > scheduling by inheriting `BaseEventTrigger` > > - If no modifications are needed, the developer simply updates the class > > to inherit from `BaseEventTrigger` > > - If modifications are needed, a new trigger class can be created, > > inheriting from both the existing trigger and `BaseEventTrigger`, with > > event-driven scheduling logic handled separately. > > > > The lazy consensus will be reached on 2025-02-03 (unless someone surfaces > > an objection). > > > > Vincent > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@airflow.apache.org > For additional commands, e-mail: dev-h...@airflow.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@airflow.apache.org For additional commands, e-mail: dev-h...@airflow.apache.org