Concepts
This Concepts in Depth section provides a deeper understanding of how Flink’s architecture and runtime implement these concepts.
Flink offers different levels of abstraction for developing streaming/batch applications.
In practice, many applications do not need the low-level abstractions described above, and can instead program against the Core APIs: the DataStream API (bounded/unbounded streams) and the (bounded data sets). These fluent APIs offer the common building blocks for data processing, like various forms of user-specified transformations, joins, aggregations, windows, state, etc. Data types processed in these APIs are represented as classes in the respective programming languages.