title: apache flink session support
body: <p>I am investigating Apache Flink Streaming to be used in our platform for ETL and machine learning. The thing i haven't figured out yet is how to stream events into 'sessions'. More descriptive: all events do contain a session id and in order to enrich data I need to group all events belonging to a session together. Please take into account that events are continuously stream in (thus no batch support after which you could simply do a groupBy e.g.) </p>
  
  <p>One possible solution could be to maintain a LRU cache of sessions and sort all incoming events to their associated session. Then after X minutes of inactivity per session one can 'close' or evict the session from the cache. The question is how to deal with this cache in a multi tenant system; does flink has the concept of a distributed cache or does it contain some sort of smart load balancer where events are directed to the same partition in the grid? </p>
  
  <p>More generally: What's the best way (use cases and pitfalls) to establish session support using the streaming api? Is this possible at all? And how to deal with replaying streams? (i.e. start from a particular point-in-time where events stream in of incomplete sessions (i.e. with events before point-in-time)</p>
  
  <p>Interested in any feedback, ideas and/or pointers.</p>
  
  <p>Thanks in advance</p>