Search code examples
scalaapache-kafkaakkaapache-kafka-streamsalpakka

Alpakka kafka vs Kafka streams


We are building a high-throughput low-latency stream processing application. We are using Apache Kafka both as a messaging platform and as a database.

It seems like the Kafka Streams and Alpakka Kafka frameworks do a lot in common, but Kafka Streams seems to be more "native" to Kafka, while Alpakka allows us to use the power of the Akka framework.

What are the key differences between the two frameworks?


Solution

  • The key difference is that Kafka streams require Kafka topics on the input side and on the output side. With Alpakka you can create processing pipeline for all kind of inputs and outputs not only Kafka topics. Also, akka streams DSL is more powerful (and complicated) than Kafka streams DSL.