A generic destination for data.
Multiple data values can be put into a sink, and when no more data is available, the sink should be closed.
This is a generic interface that other data receivers can implement.