Gently down the stream - Apache Kafka สำหรับเด็ก
(gentlydownthe.stream)- Apache Kafka ที่อธิบายให้ง่ายด้วยภาพประกอบราวกับนิทาน
→ มีแอนิเมชันสั้น ๆ รวมอยู่ด้วย
→ เว็บพรีเซนเทชันที่สร้างด้วย Reveal.js
- ใช้นากที่อาศัยอยู่ในป่าเป็นตัวอย่างเพื่ออธิบาย Kafka, อีเวนต์, ท็อปปิก, สตรีม, โปรดิวเซอร์, คอนซูเมอร์/คอนซูเมอร์กรุ๊ป, พาร์ทิชัน, Kafka Connector เป็นต้น
ในป่าที่มีแม่น้ำไหลผ่าน มีครอบครัวนากอยู่สองครอบครัว
เวลาทั้งสองครอบครัวจะแชร์ข่าวอย่างงานเลี้ยงวันเกิดหรือผู้มาเยือน ก็จะเจอกันโดยตรงแล้วค่อยคุยกัน (Tightly Coupled)
เมื่อนากย้ายเข้ามาอยู่ในป่ามากขึ้น อีเวนต์ที่ต้องแชร์ก็เพิ่มขึ้นเรื่อย ๆ (Scalability Problem)
พอการที่นากต้องมาเจอกันโดยตรงเพื่อแชร์อีเวนต์เริ่มยากขึ้น พวกมันจึงเสนอไอเดียให้ใช้ Kafka ซึ่งเป็นแม่น้ำสายใหญ่ที่ไหลอยู่ในป่าเพื่อสื่อสารกัน (Stream)
แนวคิดคือเขียนอีเวนต์ที่ต้องการส่งลงบนกระดาษ พร้อมข้อมูลอย่าง header/key/value/time แล้วปล่อยให้ล่องไปตามทางที่ตรงกับหัวข้อ (Record of the Event, Topics)
ตอนแรกพวกมันใส่กระดาษลงในขวดแก้วแล้วส่งไป แต่ก็ลอยหายไปตามน้ำ เลยหันมาใช้ Glass Float* ที่ไม่ลอยหายและอยู่กับที่ได้เสมอ (Persistent)
ตอนนี้จึงเกิดนากขึ้นมาสองประเภท คือ Producer และ Consumer
มันทำงานได้ดีอยู่พักหนึ่ง แต่เมื่ออีเวนต์ในแม่น้ำมีมากขึ้น พวกมันก็เริ่มวางก้อนหินใหญ่เพื่อแบ่งแม่น้ำออกเป็นส่วน ๆ แล้วใช้งาน (Partition)
แต่ละครอบครัวนากกลายเป็น Consumer Group และยังเลือก Group Leader กันด้วย
ถ้านากตัวหนึ่งป่วย ก็จะมีสมาชิกคนอื่นในกลุ่มมารับข้อความแทน (Highly Available)
นอกจากนี้ครอบครัวนากยังจัดการกับเหตุการณ์ไม่คาดคิดได้ด้วย (Fault Tolerant)
พวกนากยังสร้างถนนเพื่อให้ชุมชนอื่นส่งข้อความเข้ามายังแม่น้ำ Kafka ได้ด้วย (Kafka Connector)
- Glass Float : ลูกแก้วลอยน้ำ เป็นอุปกรณ์ที่ใช้พยุงไม่ให้แหจับปลาลอยหายไป
2 ความคิดเห็น
ว้าว อันนี้น่ารักมากเลย แถมยังมีประโยชน์อีกด้วย
หนังสือที่วาดภาพอธิบายคล้ายๆ กัน
The Illustrated Children’s Guide to Kubernetes https://www.cncf.io/the-childrens-illustrated-guide-to-kubernetes/
SELinux Coloring Book https://people.redhat.com/duffy/selinux/…
Life on the Infinite Farm https://www.math.brown.edu/reschwar/farm.pdf
Intro to Advantage-Actor-Critic(A2C) https://medium.com/hackernoon/…
Why's (poignant) Guide to Ruby https://poignant.guide/
Mommy, Why is there a server in the house ? https://imgur.com/gallery/kvATA
Reveal.js - เฟรมเวิร์กโอเพนซอร์สสำหรับงานนำเสนอ HTML https://th.news.hada.io/topic?id=2137