I am using postUpdate, postPersist and postRemove callback methods on each entity bean that informs neighbours about its change.
. Callback method of entity sends message to one (constant name) topic about the performed change.
. There is MessageBean listening on constant topic that catches messages.
. Message bean loops over all registered listeners to listen to entity change (might be filtered using registered key) and if there is any listener registered (from client) message bean resends message to its own (created only for one specific listener) topic.
. So each client listener has its own (listening) topic (created in runtime) and there is also one constant overall topic for any change on any entity.