-
-
Notifications
You must be signed in to change notification settings - Fork 74
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
fix: revert Kafka operation binding to publish #189
Conversation
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.
Welcome to AsyncAPI. Thanks a lot for creating your first pull request. Please check out our contributors guide useful for opening a pull request.
Keep in mind there are also other channels you can use to interact with AsyncAPI community. For more details check out this issue.
Hi @dalelane @lbroudoux Is there anything else I need to do with this PR? Otherwise, can I request your review? |
@dpwdec I don't think we have enough information on that example to decide if the application is a publisher or a subscriber. 🤔 So I think both |
Hi @KhudaDad414
The specifications that describe the binding properties used in the example as
and
Based on the above descriptions referencing consumers it seems like the authors of the original specification intended for this binding to be used exclusively by consumer Kafka applications hence the misapplication of the |
@dpwdec I think the specification of the bindings is a little bit off here. 🤔 we can have
|
@KhudaDad414 Yeah, I'm speaking from limited experience as well, I guess I feel that as we are the "users" for these sorts of bindings for documentation and tooling, if they are ambiguous to both of us they at least need to be updated somewhat 😅 What would the operation binding mean if just Seems like the |
I mean If I have multiple producers and I want to differentiate between them to know what message is being produced by which producer, having a
Your are right. a combination of |
Hi there, First and foremost, I have to admit I've never been at ease with both I tried to have a thorough read of the above messages and I tend to think that different interpretations could fit. It really depends on who is the reader of the AsyncAPI document. Let me explain what I have in mind: Case with If you're in charge of implementing the application that owns this API then If you're in charge of consuming the API, then Case with If you're in charge of implementing the application that owns this API then If you're in charge of consuming the API, then If we look at the above cases, there are two of them where
I agree that it is full of ambiguity and needs clarification ... But to me, this really lies to the target audience of an AsyncAPI specification documentation: is it expected to be used for implementing the application holding the API (and thus giving constraints to code/configuration) OR to the people who will later consume this API? I personally prefer the second option (targeting people who will later consume this API) and so I tend to think that |
Apologies for coming to this a little late. As @lbroudoux says, I think the confusion here is another symptom of https://www.asyncapi.com/blog/publish-subscribe-semantics I think there are people who have written AsyncAPI docs from both perspectives (I know I certainly have), and several tools that use AsyncAPI to generate code can treat it from either perspective (see https://www.asyncapi.com/blog/publish-subscribe-semantics#what-does-this-mean-for-using-the-spec for examples) So my instinct is to allow groupId for both publish and subscribe |
This pull request has been automatically marked as stale because it has not had recent activity 😴 It will be closed in 120 days if no further activity occurs. To unstale this pull request, add a comment with detailed explanation. There can be many reasons why some specific pull request has no activity. The most probable cause is lack of time, not lack of interest. AsyncAPI Initiative is a Linux Foundation project not owned by a single for-profit company. It is a community-driven initiative ruled under open governance model. Let us figure out together how to push this pull request forward. Connect with us through one of many communication channels we established here. Thank you for your patience ❤️ |
I guess this one can be closed? |
Sorry for not being very responsive on this. In terms of closing the PR would it be constructive to include both perspectives with a note based on what @lbroudoux has written (seems well considered and helpful to future users). Unless this sort of confusion will be solved the semantics changes in AsyncAPI V3? |
I agree that we can close this PR. Maybe reference the conclusion of this discussion in the README for Kafka bindings? WDYT? |
closing |
Based on the articles provided by the AsyncAPI org, specifically the Demystifying the semantics of Publish and Subscribe the
publish
binding documents how you (the client) interact with the documenting application through the messaging channel.For a Kafka consumer you should publish to the target channel to interact with a consumer application. Given the operation binding in this specification explicitly describes "consumer" data on the object it seems like it should be using a
publish
binding in the example to avoid confusion.I use "revert" here because when this operation binding specification was first added it did use
publish
but was changed in a later merge and I'm not sure why.