The idea: Expose the option of which timestamp to use for the result of a join. The idea that is currently the floating around includes the options
- left: Use timestamp of the element in a join that came from the left stream
- right: Use timestamp of the element in a join that came from the right stream
- max: Use the max timestamp of both elements in a join
- min: Use the max timestamp of both elements in a join
All options but max require to introduce delaying watermarks in the operator, which is something that we were hesitant to do until now. This should probably under go discussion once more in order to see if / how we want to add this now. We could even think of exposing this in a more general way by adding a base operator that allows delayed watermarks.
This will also be groundwork for supporting outer joins (FLINK-8483) for which in any case we watermark delays to provide correctness.
Also the API for this needs some feedback in order to expose this in a powerful, yet clear way. In my PoC at  I used the naming convention left / right to refer to specific streams with currently is not something the api exposes to the user, we should probably use something more clever here.
Any feedback is highly appreciated!