Sending Results to Sinks
After defining the processing steps in a pipeline, you must send the results to at least one destination called a sink. Hazelcast comes with built-in sinks as well as a public API for building your own.
A sink is a bridge between a local or remote data system and your Hazelcast cluster, which allows you to send data from Hazelcast to another system for processing or storage.
As with sources, some sinks support batch processing while others support stream processing.
By default, all stream sinks support at-least-once guarantees, but only some of them support exactly-once guarantees. If you’re using idempotent updates, you can ensure exactly-once processing even with at-least-once sinks.
Symmetrically, you can fork the output of a stage and send it to more than one sink:
Pipeline p = Pipeline.create(); BatchStage<String> src = p.readFrom(TestSources.items("the", "quick", "brown", "fox")); src.map(String::toUpperCase) .writeTo(Sinks.files("uppercase")); src.map(String::toLowerCase) .writeTo(Sinks.files("lowercase"));