Currently the KTable/KStream.print() operator will print the key-value pair as it was forwarded to this operator. However, if there are multiple operators in the topologies with the same PrintStream (e.g. stdout), their printed key-value pairs will be interleaving on that stream channel.
Hence it is better to add a prefix for different KStream/KTable.print operators. One proposal:
1) For KTable, it inherits a table name when created, and we can use that name as the prefix as [table-name]: key, value.
2) For KStream, we can overload the function with an additional "name" parameter that we use as the prefix; if it is not specified, then we can use the parent processor node name, which has the pattern like KSTREAM-JOIN-suffix_index.