A streaming-first runtime that supports both batch processing and data streaming programs Elegant and fluent APIs in Java A runtime that supports very high throughput and low event latency at the same time Support for event time and out-of-order processing in the DataStream API, based on the Dataflow Model Flexible windowing (time, count, sessions, custom triggers) across different time semantics