This document provides an introduction to stream processing with Apache Flink. It discusses why streaming is important, the key parts of a streaming infrastructure, and gives an example of how Bouygues Telecom uses Flink for stream processing. It then provides an overview of what Apache Flink is, including its unified batch and stream processing capabilities. The rest of the document focuses on stream processing features in Flink, including its DataStream API, flexible windowing options, support for iterative processing, fault tolerance mechanisms, and exactly-once processing semantics.