Gently down the stream - 어린이를 위한 Apache Kafka
(gentlydownthe.stream)- 동화처럼 그려서 쉽게 설명한 아파치 카프카
ㅤ→ 간단한 애니메이션 포함
ㅤ→ Reveal.js 로 만든 웹 프리젠테이션
- 숲에 사는 수달들을 예로 들어서 카프카, 이벤트, 토픽, 스트림, 프로듀서, 컨슈머/컨슈머 그룹, 파티션, 카프카 커넥터 등을 설명
강이 있는 숲 속에 두 수달 가족이 살았어요.
두 가족이 생일파티, 방문자등의 뉴스를 공유할 때는 직접 만나서 얘기했어요. (Tightly Coupled)
더 많은 수달들이 숲으로 이사오자, 공유할 이벤트들이 점점 많아졌어요. (Scalability Problem)
수달들이 직접 만나서 이벤트를 공유하는 것이 어려워지자, 숲에 흐르는 큰 강인 Kafka를 이용해서 소통하는 아이디어를 내었어요. (Stream)
전달한 이벤트를 헤더/키/값/시간등의 정보로 종이에 적어서 주제에 맞는 쪽으로 흘려 보내자는 거였어요. (Record of the Event, Topics)
처음엔 유리병에 종이를 넣어서 보냈지만, 그냥 떠내려가 버렸어요. 그래서 수달들은 떠내려 가지 않고, 항상 제자리에 있을 수 있는 Glass Float* 들을 이용했어요. (Persistent)
이제 두종류의 수달들이 생겼어요. Producer 와 Consumer
한동안 잘 동작했지만 강에 이벤트가 많아지자, 강에 큰 돌을 놔서 강을 분할해서 이용하기 시작했어요 (Partition)
각 수달 가족은 Consumer Group 이 되어서 Group Leader도 선정했어요
한 수달이 아프면 그룹의 누군가가 대신해서 메시지를 받아줬어요. (Highly Available)
또한 수달 가족들은 예상치 못한 일들도 처리해줄수 있었어요 (Fault Tolerant)
수달들은 다른 커뮤니티들이 Kafka 강에 메시지를 보낼수 있도록 도로도 건설했어요 (Kafka Connector)
* Glass Float : 물에 뜨는 유리로 만든 공. 낚시 그물이 떠내려가지 않도록 잡아주는 도구
비슷하게 그림으로 그려낸 책들
- 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://news.hada.io/topic?id=2137