In referring to Flink code samples, I observed that when connecting two streams using the connect operator, both coProcessFunction and keyedCoProcessFunction are being extended almost interchangeably and identically when operating on keyed streams (overriding processElement1, processElement2, and onTimer), So when operating on keyed streams what is the difference between extending CoProcessFunction as compared to keyedCoProcessFunction to implementent the business logic of the keyed connected stream?
Thank you.