Atm, Kafka Streams only has a defined "contract" about timestamp propagation at the Processor API level: all processor within a sub-topology, see the timestamp from the input topic record and this timestamp will be used for all result record when writing them to an topic, too.
The DSL, inherits this "contract" atm.
From a DSL point of view, it would be desirable to provide a different contract to the user. To allow this, we need to do the following:
- extend Processor API to allow manipulation timestamps (ie, a Processor can set a new timestamp for downstream records)
- define a DSL "contract" for timestamp propagation for each DSL operator
- document the DSL "contract"
- implement the DSL "contract" using the new/extended Processor API
Changing the DSL contract etc was done via KIP-258. This ticket is about documenting the contract.