Returns a sink that uses the items it receives to create
EntryProcessors it submits to a Hazelcast
IMap with the
specified name. For each received item it applies
toKeyFn to
get the key and
toEntryProcessorFn to get the entry processor,
and then submits the key and the entry processor to the Hazelcast
cluster, which will internally apply the entry processor to the key.
NOTE: Jet only remembers the name of the map you supply
and acquires a map with that name on the local cluster. If you supply a
map instance from another cluster, no error will be thrown to indicate
this.
As opposed to
#mapWithUpdating and
#mapWithMerging,
this sink does not use batching and submits a separate entry processor
for each received item. For use cases that are efficiently solvable
using those sinks, this one will perform worse. It should be used only
when they are not applicable.
If your entry processors take a long time to update a value, consider
using entry processors that implement
Offloadable. This will
avoid blocking the Hazelcast partition thread during large update
operations.
This sink supports exactly-once processing only if the supplied entry
processor performs idempotent updates, i.e., the resulting value
would be the same if an entry processor was run on the same entry more
than once.
Note: Unlike
#mapWithUpdating and
#mapWithMerging,
this operation is lock-aware. If the key is locked,
the EntryProcessor will wait until it acquires the lock.
The default local parallelism for this sink is 1.