Hi, for https://issues.apache.org/jira/browse/BEAM-102 we will need to have some functionality that deals with side inputs and windows (of both the main input and the side inputs) and how they get matched and how we wait for windows (blocking). I imagine that we could add some component that is similar to ReduceFnRunner but for side inputs: We would just instantiate it with a factory for state storage, then push elements into it while processing and it would provide a way to get a SideInputReader.
I think this would not be specific to the Flink runner because other runner implementors will face similar problems. Are there any ideas/design docs about such a thing already? If not, we should probably start designing. What do you think? Cheers, Aljoscha