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 A, if one table field has changed its value by Service B, 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 A. 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.
How can we design such a push service in a decentralized cluster?
One obvious solution would be waiting for a certain period of time (say, 10 seconds) and notify B regardless.
Another option: If Service B has received 3 acks from Cassandra that the quorum has been satisfied, B then would send out the notification to A instead of Cassandra itself sending it.
Are there any other decent solutions?