Hi Alexandr, Yes, I'm using a StreamReceiver since I'm mostly using the cache as a router. The implementation is more-or-less like the following:
The StreamPipeline is managed by the data node which contains the stages that make up the pipeline and what service is responsible for each stage (the service exposes a handle method which is used for side-effects or modifying entries as they go through the pipeline). When a service is started or cancelled it will poke the pipeline so it can add or remove that stage from the pipeline. The pipeline is also aware if all required services have started or not. I didn't mention it initially here, but the classes for these services are _not_ available to Ignite when the node starts. Instead, the node is actually starting a generic service which fetches required jar files from IGFS and then starts the real service using a URLClassLoader (once that is done the pipeline poke I mentioned above occurs). I'm doing this to get around existing service grid limitations with regards to dynamic code deployment. Because of the above, I wouldn't assume service startup would be "fast" when compared to map partitions being rebalanced to the new node. Can you please elaborate on the following? "Service should start quickly after node has joined the topology, and will process all the data has been collected by local partitions the moments before." It sounds like you're implying that data is being buffered somewhere, but not quite following. Thanks! -Nick -- View this message in context: http://apache-ignite-developers.2346864.n4.nabble.com/Add-ability-to-enable-and-disable-rebalancing-per-node-tp17494p17600.html Sent from the Apache Ignite Developers mailing list archive at Nabble.com.