Skip to content
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

How to submit message offset asynchronously based on kafka protocol #846

Closed
yanmxa opened this issue Feb 17, 2023 · 4 comments
Closed

How to submit message offset asynchronously based on kafka protocol #846

yanmxa opened this issue Feb 17, 2023 · 4 comments

Comments

@yanmxa
Copy link
Contributor

yanmxa commented Feb 17, 2023

There is a scenario base on Kafka protocol binding and I'm not sure how to use the sdk to achieve it:

When the cloudevent client receives an event, it returns the NACK response to tell Kafka not to commit the message offset. And also forwards the event to the backend program, when the backend program has completely consumed the event, then submits the offset of the message partition.


If I can't use cloudevents client to submit message offset directly, how can I get the message partition and offset from the cloud event? so that the other progress can use the kafka client to submit this offset once the message is consumed successfully.

@embano1
Copy link
Member

embano1 commented Jul 28, 2023

@yanmxa is this still an issue/open question?

@yanmxa
Copy link
Contributor Author

yanmxa commented Aug 7, 2023

Yes.

If it is based on this saram protocol, it seems a bit difficult to achieve asynchronous message confirmation. So I referred using the confluent protocol, #918, which can be combined with the cloudevents client to do that.

@embano1
Copy link
Member

embano1 commented Aug 9, 2023

Another popular one is https://github.com/twmb/franz-go.

@duglin how are we thinking about different implementations of open protocols, such as Kafka? It might be a bit of maintenance headache on the long-term to support multiple implementations of the same transport API. But I can understand the reasons as outlined by @yanmxa. Do we want to just provide one "reference" implementation, add multiple, or switch?

@yanmxa
Copy link
Contributor Author

yanmxa commented Mar 31, 2024

Resolved by this PR: #988

@yanmxa yanmxa closed this as completed Mar 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants