Ron, if you have received duplicate messages then by definition you have been delivered that message more than once.
I don't have a PhD in computer science so maybe you can explain how this constitutes "exactly once".
21–30 of 140 posts
Ron, if you have received duplicate messages then by definition you have been delivered that message more than once.
I don't have a PhD in computer science so maybe you can explain how this constitutes "exactly once".
Author here. Most commenters still seem to be missing the point, despite the fact that I explicitly say this in the opening sentence: "This post is ostensibly about an obscure technical issue in distributed systems, but it's really about human communications." and reiterate it at the end: "This post was intended to be about human communication more than distributed systems or network protocols." I really don't know h…
When your argument depends upon everyone else being unreasonable, maybe you're the one being unreasonable.
Yes, we can make the processing that occurs in response to those delivered message(s) idempotent. But in the end, the system has to either deal with:
1. messages being delivered once or lost entirely, or
2. messages being delivered once or multiple times
You are over-explaining a way to deal with situation #2 (detect duplicates at the endpoint).
Author here. Most commenters still seem to be missing the point, despite the fact that I explicitly say this in the opening sentence: "This post is ostensibly about an obscure technical issue in distributed systems, but it's really about human communications." and reiterate it at the end: "This post was intended to be about human communication more than distributed systems or network protocols." I really don't know h…
If you have duplicate things, then you've clearly been delivered more than one thing. There is no way to deliver something exactly once, and yet the receiver has more than one thing such that they can throw all but one thing away.
It's okay to admit you were mistaken.
Author here. Most commenters still seem to be missing the point, despite the fact that I explicitly say this in the opening sentence: "This post is ostensibly about an obscure technical issue in distributed systems, but it's really about human communications." and reiterate it at the end: "This post was intended to be about human communication more than distributed systems or network protocols." I really don't know h…
Don’t use technical terms like “exactly-once delivery” if you don’t have want it to be interrupted as technical
Author here. Most commenters still seem to be missing the point, despite the fact that I explicitly say this in the opening sentence: "This post is ostensibly about an obscure technical issue in distributed systems, but it's really about human communications." and reiterate it at the end: "This post was intended to be about human communication more than distributed systems or network protocols." I really don't know h…
The problem is, you're using strong language like "under any reasonable definition of 'delivery'." But everyone else is defining delivery differently than you, referring to the delivery of the message to the system itself. Your language implies everyone else is unreasonable. When your argument depends upon everyone else being unreasonable, maybe you're the one being unreasonable. Yes, we can make the processing that…
And how do you define "the system itself"?
Earlier quoted context omitted.
The problem is, you're using strong language like "under any reasonable definition of 'delivery'." But everyone else is defining delivery differently than you, referring to the delivery of the message to the system itself. Your language implies everyone else is unreasonable. When your argument depends upon everyone else being unreasonable, maybe you're the one being unreasonable. Yes, we can make the processing that…
> referring to the delivery of the message to the system itself And how do you define "the system itself"?
This stuff is practiced at staggering scale and the heuristics and cheat-while-no-one-looks stuff is gamed to within an inch of its life.
There is an acknowledged nexus of the two in the public domain: https://jepsen.io/consistency.
Over 20 years ago I worked with some specialized commercial software, Cyclone, that did guaranteed delivery of files. Guaranteed as in the legal sense. If the server sent back a ticket number to the sending client, it was a LEGAL assurance that the file was received, because there was a contract in place with financial penalties. The time stamps were particularly important in the legal contract. So, there are a lot o…
In case you're someone who actually knows anything about distributed systems and you're not looking forward to slogging through this long article filled with claims like "I have a PhD in AI so I know what I'm talking about" to find where the author made their mistake, let me save you the time. It's the typical conflation of exactly-once delivery with exactly-once processing, which the author acknowledges and then cho…