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

Feature: Exactly-once semantics #321

Open
Psykepro opened this issue May 11, 2021 · 6 comments
Open

Feature: Exactly-once semantics #321

Psykepro opened this issue May 11, 2021 · 6 comments

Comments

@Psykepro
Copy link

Is the exactly-once semantics added to the road map of the library? Would be very nice to have it. As it is the most wanted semantics in the stream processing realm.

@frairon
Copy link
Contributor

frairon commented May 11, 2021

Hi Nikolay,
nope currently we don't have planned anything in this regard. If there's a bigger need for that however, we could at least check out the effort needed to add it to goka.

@Psykepro
Copy link
Author

Psykepro commented May 11, 2021

We definitely need it. It is a must for some applications where are some critical parts that need to ensure exactly-once delivery. And now it is easier than ever to implement:
https://www.confluent.io/blog/enabling-exactly-once-kafka-streams/

We are using a Python faust which is a Stream Processing library with Exactly-Once Semantics available. And we want to switch to GoLang and the only thing which is stopping us is that there is no Streams Processing library with exactly-once semantics in GoLang.

@frairon
Copy link
Contributor

frairon commented May 11, 2021

Absolutely, I understand the necessity of this. It's simply a matter of time and ressources, so we have to evaluate how easy/fast it is to add this to the framework and if it's worth the effort. Let me check in the next days (or feel free to give it a look too), but I can't promise anything.

@twmb
Copy link

twmb commented May 18, 2021

As a little bit of self promotion, my franz-go client has EOS support, if the problem for supporting EOS in goka is due to sarama's lack of EOS support.

@frairon
Copy link
Contributor

frairon commented May 19, 2021

It looks like sarama simply does not support transactions, therefore no EOS, and apparently no one is working on it.

Replacing the underlying library with something else like franz-go sounds like quite a major change, since goka is quite tightly coupled to sarama. Also I'd really like to give it a try, so thanks for the hint @twmb :)
But for now, I'd say we simply cannot add support for EOS to goka in near/mid future with reasonable resources.

@tinkalgogoi
Copy link

Currently, Sarama added transactional API from version v1.37.2, Here is a good article showing the implementation of transactions in producer/consumer - https://www.andreamedda.com/posts/play-with-sarama-transactional-api

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

4 participants