Yakov, Thanks for clean explanation, also I found exactly that logic in RingMessageWorker code.
But I strongly believe that this behavior should have been documented in *DiscoveryCustomMessage* interface (I think it is the best place for this). Messaging managers like discovery manager must provide very explicit and detailed documentation for guarantees they provide to their users so developers wouldn't guess what to expect. Anyway modifying my protocol for IGNITE-4302 is not a big deal, I can easily change it to handle situations of like this. Also as part of the JIRA I'll try to clarify documentation at least for this case. Thanks, Sergey. On Fri, Feb 3, 2017 at 1:30 PM, Yakov Zhdanov <yzhda...@apache.org> wrote: > Can anyone point a place in javadoc that states that there is exactly once > guarantee? > > Imagine you have nodes A, B and C. A sends custom message to B and gets ack > back, B sends to C and dies. A connects to C and resends the message. > Result - C has got the message twice. Currently handling logic is > responsible for resolving duplicates. > > --Yakov >