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

Reply via email to