Comment by jchw
The point is that it doesn't matter exactly where the deduplication matters. It could happen in your own processing code, or something upstream of it, like a queue library of some kind. That's pretty much what the entire article is saying; it's hard to meaningfully distinguish what part is actually delivery versus processing. e.g. most people would consider the guarantees imparted by the TCP stack are indeed part of delivery and not processing, but your TCP stack is having to do a lot of processing work to actually maintain the logical stream of bytes.
> The point is that it doesn't matter exactly where the deduplication matters.
Actually the point is that once deduplication is done at some layer, the layers above it will have to re-achieve exactly-once delivery.
"Yes, the TCP layer did deliver this message only once, but the receiving software crashed right after, so now the sender has to send it again."