Comment by jongjong
Yes of course you can have exactly once delivery if you clearly define who/what the receiver is. You can easily deduplicate messages on the receiving end based on UUIDs created by the sender for example... Since they are duplicates of the exact same message, it doesn't matter which one is 'the original'.
It makes sense to worry about this only if you're worried about wasting bandwidth in the event of network instability (since the same message may sometimes traverse the network multiple times) but that's not generally something engineers should worry about.
It's ironic how some people use this to try to talk down to 'junior' developers.
Anyone can memorise hearsay about distributed systems but few can speak from experience.
you can't in general case because you don't have infinite memory for dedupe.