Using data streamed from our custom made LEGO Truck, we will present several Scala-based streaming event processing technologies such as Apache Kafka (Kafka Streams), Apache Storm, Apache Spark (Spark Streaming) and Apache Flink
We will show key differences and we will try to compare them in a fair manner on aspects like performance, implementation learning curve, stability, etc.
docs
-> Contains demo slides. See README.mdkafka
-> Contains Kafka Streams Scala example. See README.mdspark
-> Contains Spark Streaming Scala example. See README.mdstorm
-> Contains Storm Scala example. See README.mdflink
-> Contains Flink Scala example. See README.md
- Apache Kafka (Kafka Streams)
- Apache Spark (Spark Streaming)
- Apache Storm
- Apache Flink
- Akka Streams (not implemented)
- Apache Samza (not implemented)
- Apache Heron (Incubator) (not implemented)
- Start Zookeeper:
./bin/zookeeper-server-start.sh config/zookeeper.properties
- Set default port
2182
- Set default port
- Start Kafka broker:
./bin/kafka-server-start.sh config/server.properties
- Create a Kafka producer:
./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic SourceTopic
- Start all stream processors:
- Kafka streams:
sbt run
- Spark streaming:
sbt run
- Storm:
sbt run
- Flink:
sbt run
- Setup Kafka consumer:
./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic SinkTopic
The views, thoughts, and opinions expressed in this repository belong solely to the author, and not to the author’s employer, organization, committee or other group or individual.
This project is licensed under the terms of the MIT license. See LICENSE
🚚🚍🚚🚍🚚🚍🚚🚍🚚🚍🚚🚍