Apache flink is an open-source, distributed query engine that can process batch as well as streaming data.

Apache-spark is used for batch processing whereas flink is used for real-time stream processing

Flink can be deployed on VMS, docker and Kubernetes

In flink, a user can write code in java, scala, and python.

Flink consists of two data abstractions DataStream and DataSet. DataSet is used for a bounded stream whereas DataStream is used for a continuous stream.

Flink is very fast and it can process TBs of data in a few minutes.

Flink provides libraries for machine learning(Flink ML), graph(Gelly), and SQL(Tables)