public static void main(String[] args) throws ExecutionException, InterruptedException { Set<String> set = new HashSet<>(Arrays.asList("1", "2", "3")); CompletableFuture<Void> future = CompletableFuture.runAsync( () -> { HazelcastInstance hz1 = Hazelcast.newHazelcastInstance(); IMap<String, Integer> map = hz1.getMap("somemap"); EntryUpdatedListener<String, String> stringStringEntryUpdatedListener = event -> System.out.println("Entry Updated:" + event); map.addLocalEntryListener(stringStringEntryUpdatedListener); set.forEach(k -> map.put(k, Integer.valueOf(k))); set.forEach(k -> map.put(k, Integer.valueOf(k) + 10)); }) .thenRun( () -> { HazelcastInstance hz2 = Hazelcast.newHazelcastInstance(); IMap<String, Integer> map = hz2.getMap("somemap"); Set<String> localKeySet = map.localKeySet(); set.removeAll(localKeySet); System.out.println("out keys:" + set); map.executeOnKeys( set, new AbstractEntryProcessor<String, Integer>() { @Override public Object process(Map.Entry<String, Integer> entry) { return entry.setValue(2); } }); // Object executeOnKey( K key, EntryProcessor entryProcessor ); // void submitToKey( K key, EntryProcessor entryProcessor, // ExecutionCallback callback ); // Map<K, Object> executeOnEntries( EntryProcessor entryProcessor ); // Map<K, Object> executeOnEntries( EntryProcessor entryProcessor, // Predicate predicate ); }); future.get(); }