title: How do I design a Notification/Push Service in a decentralized cluster?
body: <p>It's not easy to design a notification/push service for a decentralized (peer-to-peer) cluster. For example, if I want Cassandra to push out a notification to Service <em>A</em>, if one table field has changed its value by Service <em>B</em>, that's not easy. This is because Cassandra is organized in a decentralized manner, e.g., 5 nodes, and they don't know when a quorum of three nodes are committed before pushing the change to <em>A</em>. However, in a centralized (master-slave) cluster, things are different. ZooKeeper, for example, knows when 3 nodes out of the 5 are committed, and a notification service can be arranged.</p>
  
  <p>How can we design such a push service in a decentralized cluster? </p>
  
  <p>One obvious solution would be waiting for a certain period of time (say, 10 seconds) and notify <em>B</em> regardless. </p>
  
  <p>Another option: If Service <em>B</em> has received 3 acks from Cassandra that the quorum has been satisfied, <em>B</em> then would send out the notification to <em>A</em> instead of Cassandra itself sending it.</p>
  
  <p>Are there any other decent solutions?</p>