Kafka Streams vs other stream processing libraries (Spark Streaming, NiFI, Flink

A free video tutorial from Stephane Maarek | AWS Certified Cloud Practitioner,Solutions Architect,Developer
Best Selling Instructor, 10x AWS Certified, Kafka Guru
Rating: 4.7 out of 5Instructor rating
65 courses
2,406,391 students
Kafka Streams vs other stream processing libraries (Spark Streaming, NiFI, Flink

Lecture description

Short lecture comparing Kafka Streams to other streaming libraries

Learn more from the full course

Apache Kafka Series - Kafka Streams for Data Processing

Learn the Kafka Streams API with Hands-On Examples, Learn Exactly Once, Build and Deploy Apps with Java 8

04:49:11 of on-demand video • Updated February 2024

Write four Kafka Streams application in Java 8
Configure Kafka Streams to use Exactly Once Semantics
Scale Kafka Streams applications
Program with the High Level DSL of Kafka Streams
Build and package your application
Write tests for your Kafka Streams Topology
And so much more!
English [Auto]
So one last lecture just to reflect on what happens. So this was awesome what we did in a previous lecture. I really hope that you see the full extent of it. And in the next section I promise we're going to see how to code this, really understand what happens at the code level. Okay. So just before we step into it, I know you guys are going to ask me a lot of questions and this question is going to be recurring and recurring and recurring. And it is should I use Kafka streams or spark streaming or Defi or Flink or really any other library? And there is no right or wrong answer. It really depends on your use case and what's best suited for it. All these libraries are constantly evolving, constantly changing, and really things change. But as of today, let me tell you the differences spark streaming, knife, outflank all these and flink actually spark streaming does micro batch and Kafka streams does per data streaming. So this is pretty much what you want. Do you want real, real time or do you want micro virtual time? There is a cluster required for SPARC streaming for DEFI for flink. I know this for a fact, but in Kafka streams you don't require any cluster. You see, we ran our Kafka stream's application with one command. We didn't start a Kafka stream cluster whatsoever. And I promise you, no Kafka streams cluster was started. So spark streaming Nifty and Flink require a little bit more maintenance as to how to launch an application, how to scale an application, etc., etc. So I really like that about Kafka streams. It scales also very easily, but just adding Java processes. So we'll see this in the next lecture. How to Scale a Kafka Stream's Application. But there's no reconfiguration required, there's no cluster. Again, you just add Java processes. It also has exactly one semantics on Kafka and Spark can modify and Flink for now implement at least once. So this is really awesome because Kafka Streams is so close to Kafka, it's been developed by the Kafka guys that it really leverages Kafka for its full capabilities and now does exactly one semantics, whereas other streaming libraries expire. Nifty and Flink that just take the data out of Kafka and forget it was coming from Kafka. So that's that's something that it's a bit weak on their side and I'm sure over time they will evolve and provide exactly one semantics. But for now, Kafka Streams is the only library that does provide that. Kafka streams is all code based. So so is SPARC streaming. So it's flink but knife fight isn't nifty, is drag and drop. And then finally I have a queer question that answer this in details that you can look at the link. I'll post the link, but you can see my detailed answer right here. So I hope this will answer most of your questions if you'll just have questions asking the Q&A. But this course is solely dedicated towards Kafka streams and Kafka streams. There's only one thing it's Kafka to Kafka OC, so hope you're excited. And in the next section we're going to get deep into the code and to an application. So see you soon.