Thank you, that already helps me a lot! One further question though. Given your answer and the javadoc documentation, I assume that the unordered send method in IgniteMessaging is blocking until all recipients in the topic have received the message, right? And if any of the recipients fails to receive the message, an IgniteException is thrown? And what happens if a new node is joining the cluster while a message is being sent?
If it makes sense, I could create a pull request to add this information to the javadoc? Philipp ________________________________ From: Yakov Zhdanov [[email protected]] Sent: Monday, April 04, 2016 11:49 To: [email protected] Subject: Re: Messaging Reliability Philipp, Messaging works on top of Ignite internal communication sub-system. Message delivery is guaranteed, unless recipient node has not left the grid. If it leaves (i.e. topology gets EVT_NODE_LEFT or EVT_NODE_FAILED), then sender clears internal queue associated with left node. When node receives the messages it sends internal acks to let sender now that messages can be removed from queue. Message correctness is not checked additionally - we rely on TCP here. Let me know if you have more questions. Thanks! --Yakov 2016-04-04 12:13 GMT+03:00 Hausmann Philipp <[email protected]<mailto:[email protected]>>: Hi all I am considering using Ignite messages to manage some jobs in my cluster. I've seen that one can send messages either in an ordered or unordered fashion, but the documentation does not specify any further guarantees. So far I have come up with the following questions: - Is delivery of point-to-point messages guaranteed? - Is delivery of topic messages to all/to some listeners guaranteed? - Is correctness of delivered messages guaranteed (e.g. bitflips)? My current impression is, that Ignite does not guarantee anything beyond ordering. Does anybody know anything more about this? All the best, Philipp
