Nowadays, many stream processing applications have sophisticated business logic, strict correctness guarantees, high performance, low latency, fault-tolerant, and maintain terabytes of state. There are many stream processing frameworks available in the market which helps businesses to write robust stateful stream processing applications. In this session, we will talk about Apache Flink, a distributed stream processor with intuitive and expressive APIs to implement stateful stream processing applications. It can efficiently run such applications at a large scale in a fault-tolerant manner. In this session, we will see what is stateful stream processing in detail, and how Flink takes on stateful stream processing. We'll get to know how checkpointing mechanism works in Flink.