-
Notifications
You must be signed in to change notification settings - Fork 16.3k
AIP-82: implement Google Pub/Sub message queue provider #56445
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
jason810496
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for raising the PR again!
vincbeck
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice!
|
@VladaZakharova - can you take a look please? |
|
Hi there, thank you for pinging me here, this PR actually introduces very important set of changes for Google provider, that I think should be discussed before merging it. In general changes introduced here make sense and will be good to have in Google provider as well, but from Google provider's point of view the structure itself of the files and folders where to store those changes should be discussed in a more detailed way. For now, I would kindly ask you to NOT merge these changes. Later will be good to adjust this PR to the design doc that we will share and then review this PR again. |
potiuk
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Requesting changes for Google team discussion to complete.
Just to add some context here that may be helpful – using a different folder structure will cause References: airflow/providers/common/messaging/src/airflow/providers/common/messaging/triggers/msg_queue.py Line 40 in 44f8479
airflow/airflow-core/src/airflow/providers_manager.py Lines 1097 to 1103 in 44f8479
So, changing the folder structure would ultimately require updates to the common package or introducing a special-case implementation specifically for the Google provider. |
I do not understand, why do you need to change the common messaging structure? |
I do not intend to change the structure, I was only addressing #56445 (comment) about maintaining the existing provider's structure. The only thing introduced in this PR is a |
My bad :) |
|
Hi there everyone. Thank you for waiting! We have discussed this inside the team and wanted to propose some changes.
|
|
Thanks for taking a look into this! I have one question, how do you suggest we resolve this #56445 (comment)? Are we going to make changes to the discovery implementation to support the google provider? Also the link to the image provided isn't publicly accessible. |
|
Regarding the comment: yes, unfortunately, this will need some changes in the existing code. Overall, this is a proposal for the common structure. Still, as a part of the Community, we want to be on the same page with other providers, so the proposed idea will include the changes in other providers as well. Good that we have only 2 I think for now :) But still, this is a proposal, as we respect the Community's decisions. From Google side it looks like current structure can be not very clear for the user, but if we will all follow one idea, then Google will also respect this and follow already implemented idea for event scheduling. |
jason810496
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If I not understand wrong, we don't need to change the common queue interface even the PubSubMessageQueueEventTriggerContainer is placed in different directory structure as screenshot described. The Provider Manager is still able to retrieve it as long as the queues of get_provider_info return the correct path to import.
Here is example of RedisPubSubMessageQueueProvider
| "queues": ["airflow.providers.redis.queues.redis.RedisPubSubMessageQueueProvider"], | |
| "sensors": [ |
we just need to set the queues to ["airflow.providers.google.cloud.event_scheduling.pubsub.PubSubMessageQueueEventTriggerContainer"] for this case.
|
@jason810496 good call out, that solves it then. Thanks! |
df668b2 to
847b25a
Compare
|
@VladaZakharova I have updated the PR to follow the proposed structure and naming convention for folders/files. Would you mind taking a look when you get a chance? Thanks! |

Pending review from the Google team (see #54494 (comment))
related: #54494
^ Add meaningful description above
Read the Pull Request Guidelines for more information.
In case of fundamental code changes, an Airflow Improvement Proposal (AIP) is needed.
In case of a new dependency, check compliance with the ASF 3rd Party License Policy.
In case of backwards incompatible changes please leave a note in a newsfragment file, named
{pr_number}.significant.rstor{issue_number}.significant.rst, in airflow-core/newsfragments.