Stream processing has deeply changed the way we build data pipelines. Over the years, it outgrew its original space of real-time applications into a "grand unifying" paradigm for distributed data processing. Apache Flink is at the forefront of this development, pushing the boundaries and redefining what is possible with streams. With flexible APIs and a powerful execution model, Flink has been hardened at (huge) scale by companies like Alibaba, Netflix, Uber and Yelp. In this talk, we'll explore the building blocks that make it the most resilient and versatile option for stateful stream processing and beyond. In particular, we'll review basic concepts of streaming with Flink, like state and time, and walk through the main features and abstractions that give it a competitive edge over similar frameworks.