{"id":1218,"date":"2021-04-29T17:10:16","date_gmt":"2021-04-29T16:10:16","guid":{"rendered":"http:\/\/www.igfasouza.com\/blog\/?p=1218"},"modified":"2021-04-29T17:10:16","modified_gmt":"2021-04-29T16:10:16","slug":"learn-kafka-and-event-streams-with-fun","status":"publish","type":"post","link":"http:\/\/www.igfasouza.com\/blog\/learn-kafka-and-event-streams-with-fun\/","title":{"rendered":"Learn Kafka and Event Streams with fun"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/kafka_idea.jpg\" alt=\"\" width=\"600\" height=\"395\" class=\"alignnone size-full wp-image-1219\" srcset=\"http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/kafka_idea.jpg 600w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/kafka_idea-300x198.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p><b>Hey you!<\/b><\/p>\n<p>This is a start point for me to explore some ideas to learn Kafka and Event Streams in a fun way. My plan is to create a way to teach people Kafka concepts combining with some kind of hardware or game. Something like from scrap, for dummies, for kids, or from zero to one.<\/p>\n<p>Is it possible to learn Kafka and Event Streams with fun?<\/p>\n<p><a href=\"http:\/\/www.igfasouza.com\/blog\/what-is-stream-processing\/\" rel=\"noopener\" target=\"_blank\">Stream processing<\/a> is the act of continuously incorporating new data to compute a result. Streaming is a data distribution technique where data producers write data records into an ordered data stream from which data consumers can read that data in the same order. Here is a simple data streaming diagram illustrating a data producer, a data stream, and a data consumer.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2019\/10\/data-streaming-introduction-1-1024x163.png\" alt=\"\" width=\"640\" height=\"102\" class=\"alignnone size-large wp-image-650\" srcset=\"http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2019\/10\/data-streaming-introduction-1-1024x163.png 1024w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2019\/10\/data-streaming-introduction-1-300x48.png 300w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2019\/10\/data-streaming-introduction-1-768x122.png 768w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2019\/10\/data-streaming-introduction-1-624x99.png 624w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2019\/10\/data-streaming-introduction-1.png 1987w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/p>\n<p>And if you look only at the Data Stream part you will see something like a Led Strip<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/led_stripe-1024x256.png\" alt=\"\" width=\"640\" height=\"160\" class=\"alignnone size-large wp-image-1220\" srcset=\"http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/led_stripe-1024x256.png 1024w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/led_stripe-300x75.png 300w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/led_stripe-768x192.png 768w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/led_stripe.png 1433w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/p>\n<p>The question is can I use a led Strip to teach Event Stream nicely and funnily?<\/p>\n<p>I came with two ideas<\/p>\n<ul>\n<li> Led Race game &#8211; <a href=\"http:\/\/igfasouza.com\/blog\/led-race-another-dublinmaker\/\" rel=\"noopener\" target=\"_blank\">blog<\/a> <\/li>\n<li> Anki Overdrive &#8211; <a href=\"http:\/\/igfasouza.com\/blog\/connected-vehicles-self-driving-cars-with-kafka\/\" rel=\"noopener\" target=\"_blank\">blog<\/a> <\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/kafka_learn-1024x310.jpg\" alt=\"\" width=\"640\" height=\"194\" class=\"alignnone size-large wp-image-1221\" srcset=\"http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/kafka_learn-1024x310.jpg 1024w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/kafka_learn-300x91.jpg 300w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/kafka_learn-768x232.jpg 768w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/kafka_learn.jpg 1180w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/p>\n<h2>Led Race game<\/h2>\n<p>Led Race is a Raspberry PI Led Strip game. Minimalist cars race with a Led strip and two switches where the speed of the car is proportional to the pulsations of the control button. In this scenario, I can explore how to generate data and build a scoreboard and game statistics using Kafka.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/ledrace_kafka011-1024x537.png\" alt=\"\" width=\"640\" height=\"336\" class=\"alignnone size-large wp-image-1223\" srcset=\"http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/ledrace_kafka011-1024x537.png 1024w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/ledrace_kafka011-300x157.png 300w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/ledrace_kafka011-768x403.png 768w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/ledrace_kafka011-1536x806.png 1536w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/ledrace_kafka011-2048x1075.png 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/p>\n<p>I can explore the same ideas from my <a href=\"http:\/\/www.igfasouza.com\/blog\/kafka-weather-station\/\" rel=\"noopener\" target=\"_blank\">weather station blog<\/a> and It is possible to combine them with IOT, connected vehicles, Kafka at the Edge, and several others ideas.<\/p>\n<p><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/1oGOfiLcgwY\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<h2>Anki Overdrive<\/h2>\n<p>Anki Overdrive is an intelligent battle racing system that lets you explore the power of artificial intelligence (AI). It is a game where you drive the car using a smartphone or a tablet and you can race with friends.<br \/>\nThe Anki provides an API where you can get information in real-time from the game.<br \/>\nAgain I can explore how to generate data and build a scoreboard and game statistics using Kafka.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/anki_kafka01-1024x537.png\" alt=\"\" width=\"640\" height=\"336\" class=\"alignnone size-large wp-image-1222\" srcset=\"http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/anki_kafka01-1024x537.png 1024w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/anki_kafka01-300x157.png 300w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/anki_kafka01-768x403.png 768w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/anki_kafka01-1536x806.png 1536w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/anki_kafka01-2048x1075.png 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/p>\n<p>I can explore the same ideas from my <a href=\"http:\/\/www.igfasouza.com\/blog\/kafka-weather-station\/\" rel=\"noopener\" target=\"_blank\">weather station blog<\/a> and It is possible to combine them with IOT, connected vehicles, Kafka at the Edge, and several others ideas.<\/p>\n<p><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/dIz7iWXGLeU\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<p>And as you can see both ideas are similar in the sense that I can add and explore several scenarios around Data Stream.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/03\/diagran-1024x801.jpg\" alt=\"\" width=\"640\" height=\"501\" class=\"alignnone size-large wp-image-994\" srcset=\"http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/03\/diagran.jpg 1024w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/03\/diagran-300x235.jpg 300w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/03\/diagran-768x601.jpg 768w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/03\/diagran-624x488.jpg 624w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/p>\n<p>Each <a href=\"http:\/\/www.igfasouza.com\/blog\/real-time-locating-system-with-kafka\/\" rel=\"noopener\" target=\"_blank\">producer<\/a> could be a sensor, an IOT device, or a machine and I can use a Raspberry PI to show that. On the Kafka Cluster each broker, leader, and follower could be a Raspberry PI as well, and of Course the consumer as well.<\/p>\n<p>This means that a bunch of Raspberry Pis and a Led Strip is a basic start point.<br \/>\nThe best part is that now with Raspberry PI 4 8g it is possible to <a href=\"http:\/\/www.igfasouza.com\/blog\/raspberry-pi-kafka-cluster\/\" rel=\"noopener\" target=\"_blank\">install Kafka<\/a> and show the concept of <a href=\"http:\/\/www.igfasouza.com\/blog\/kafka-at-the-edge-with-raspberry-pi\/\" rel=\"noopener\" target=\"_blank\">Kafka at the edge<\/a>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/03\/kafka_at_the_edge1.jpg\" alt=\"\" width=\"924\" height=\"481\" class=\"alignnone size-full wp-image-1007\" srcset=\"http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/03\/kafka_at_the_edge1.jpg 924w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/03\/kafka_at_the_edge1-300x156.jpg 300w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/03\/kafka_at_the_edge1-768x400.jpg 768w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/03\/kafka_at_the_edge1-624x325.jpg 624w\" sizes=\"auto, (max-width: 924px) 100vw, 924px\" \/><\/p>\n<h2>Ideas outside<\/h2>\n<p>Of course, there are some ideas outside that somehow could fit in this purpose.<\/p>\n<p><a href=\"https:\/\/softwaremill.com\/kafka-visualisation\/\" rel=\"noopener\" target=\"_blank\">Kafka Visualization<\/a><\/p>\n<p><a href=\"https:\/\/www.confluent.io\/resources\/kafka-summit-2020\/building-event-streaming-applications-with-pac-man\/\" rel=\"noopener\" target=\"_blank\">Building Event Streaming Applications with Pac-Man<\/a><\/p>\n<p><a href=\"https:\/\/riferrei.com\/what-apache-kafka-has-in-common-with-rocky-balboa\/\" rel=\"noopener\" target=\"_blank\">What apache Kafka has in common with Rocky Balboa<\/a><\/p>\n<p><a href=\"https:\/\/www2.slideshare.net\/AlejandraOlveraNovac\/learning-kafka-theory-101-w-my-little-ponies\" rel=\"noopener\" target=\"_blank\">Learning Apache Kafka Theory 101 with My Little Ponies<\/a><\/p>\n<p><a href=\"https:\/\/ruurtjan.medium.com\/understanding-kafka-with-factorio-74e8fc9bf181\" rel=\"noopener\" target=\"_blank\">Understanding Kafka with Factorio<\/a><\/p>\n<p>If you know or have any similar ideas, please let me know in the comments.<\/p>\n<p>Just did an idea intro presentation video.<\/p>\n<p><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/N-HuBtLiNRY\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<p><iframe loading=\"lazy\" title=\"learn Kafka and Event Streams with fun\" src=\"https:\/\/www.slideshare.net\/slideshow\/embed_code\/key\/6FyRufEShhaIiZ\" width=\"427\" height=\"356\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" allowfullscreen> <\/iframe> <\/p>\n<div style=\"margin-bottom:5px\"> <strong> <a href=\"https:\/\/www.slideshare.net\/slideshow\/learn-kafka-and-event-streams-with-fun\/247341782\" title=\"learn Kafka and Event Streams with fun\" target=\"_blank\">learn Kafka and Event Streams with fun<\/a> <\/strong> from <strong><a href=\"https:\/\/www.slideshare.net\/IgorSouza137\" target=\"_blank\">Igor De Souza<\/a><\/strong> <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Hey you! This is a start point for me to explore some ideas to learn Kafka and Event Streams in a fun way. My plan is to create a way to teach people Kafka concepts combining with some kind of&hellip; <a href=\"http:\/\/www.igfasouza.com\/blog\/learn-kafka-and-event-streams-with-fun\/\" class=\"more-link\">Continue Reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":1219,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25,24],"tags":[7,13],"class_list":["post-1218","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kafka","category-raspberry-pi","tag-kafka","tag-raspberry-pi"],"_links":{"self":[{"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/posts\/1218","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/comments?post=1218"}],"version-history":[{"count":8,"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/posts\/1218\/revisions"}],"predecessor-version":[{"id":1231,"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/posts\/1218\/revisions\/1231"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/media\/1219"}],"wp:attachment":[{"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/media?parent=1218"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/categories?post=1218"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/tags?post=1218"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}