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

Provide "At least once delivery" semantic #5

Open
icycrystal4 opened this issue Apr 27, 2016 · 0 comments
Open

Provide "At least once delivery" semantic #5

icycrystal4 opened this issue Apr 27, 2016 · 0 comments

Comments

@icycrystal4
Copy link
Member

There are three message delivery semantics.

  • exactly once
  • at most once
  • at least once

What people really want is definitely "exactly once", where by duplicate messages are not delivered. But within the context of a distributed system, "You Cannot Have Exactly-Once Delivery". [There are two common reasons duplicate may occur)[https://cwiki.apache.org/confluence/display/KAFKA/Idempotent+Producer]: one is network error when sending messages, the other is consumption's process crashes.
At most once semantics is easy to implement, actually in this condition the cluster will hit ultra high throughput and low latency, but data loss is an unacceptable option in many biz environment.

So, at least once delivery semantics becomes realistically the only option. We try everything to ensure no data loss, at the cost of complicated design, even if duplication.

@icycrystal4 icycrystal4 changed the title Provide "At least once delivery semantics" Provide "At least once delivery" semantic Apr 27, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant