Igniters, I was looking at IgniteEvents.remoteListen() and failed to understand how it works. Can someone explain me semantics please?
1) What is the point of *local* listener in the method "*remote*Listen"? Are we collecting events remotely and send them to the local node? If yes, then this is not "remoteListen", it is "localListen" with additional remote filters. 2) How does "IgnitePredicate<T> rmtFilter" argument work? JavaDoc says: "It will be auto-unsubsribed on the node where event occurred in case if it returns {@code false}." Is this a filter that stops working when "false" is returned? If yes, this is not a filter, I am afraid. It doesn't filter anything. This is something else I cannot name. To the contrast please look at IgniteMessaging.remoteListen() - clean and consistent method. Looks like we need to rethink this API. The closest concept is continuous queries. It has a remote filter (which is really a filter) and a local listener. I would remove/deprecate "remoteListen" method and do something like this: UUID listen(IgniteInClosure<Event> locLsnr, @Nullable IgnitePredicate<Event> rmtFilter, bool autoUnsubscribe); bool stopListen(UUID id); Thoughts?