There could be a situation where when a cluster message is sent, a
member momentarily leaves the cluster, but joins immediately. This
generally could happen when the nodes slow down under load, or due to
intermittent network failures. However, this could lead to failures because
crucial cluster messages may not be received by members.

To overcome this, or reduce the probability of loss of such messages, we
can replay a certain number of messages when a member joins. On the sender
side, messages over a particular time period can be buffered, and then
replayed when new members join. However, we should ensure that the messages
are idempotent, and messages should declare whether they are idempotent or
not. If a message is not idempotent, we will not replay it. All the
messages we have at the moment are idempotent, AFAIK.

How does this approach sound?

-- 
*Afkham Azeez*
Director of Architecture; WSO2, Inc.; http://wso2.com
Member; Apache Software Foundation; http://www.apache.org/
* <http://www.apache.org/>**
email: **[email protected]* <[email protected]>* cell: +94 77 3320919
blog: **http://blog.afkham.org* <http://blog.afkham.org>*
twitter: **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez>
*
linked-in: **http://lk.linkedin.com/in/afkhamazeez*
*
*
*Lean . Enterprise . Middleware*
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to