Apache Flink Vs Spark Vs Kafka Stream
Apache Flink
Real streaming which is for data streaming (not video streaming) which operaters as a cluster separated by job
and task
.
In Apache Flink, you typically use the whole apache flink cluster as the whole and then submit job to that cluster.
Apache Spark
Apache spark is normally use for micro-batching — which is not really true-streaming.
Use case of apache spark is normally when the system doesn't have a strict real-time requirement. For example designing a search completion system if we want near real-time suggestion
Kafka Stream
Kafka stream is a true streaming but however less performance comparing to Apache Flink.
Kafka Stream doesn't operate based on cluster but can be used within your application as library. However it requires a system that's running Kafka.
We normally integrate with Kafka Connect so that we can stream events from database.