![](https://habrastorage.org/webt/05/ft/h8/05fth8a12jta-ku4eevh-czaerq.png)
Я учусь иллюстрировать сложные процессы с помощью комиксов. Нашла себе в копилку крутой кейс: как с помощью комиксов про милых выдр можно ребенку объяснить такую сложную штуку как Apache Kafka, и сделать мир немного добрее.
«Легко по течению» — легкое введение в потоковую обработку и Apache Kafka. Группа выдр обнаруживает, что они могут использовать гигантскую реку для общения друг с другом. По мере того, как все больше выдр перемещается в лес, они должны научиться адаптировать свою систему, чтобы справиться с возросшей активностью леса.
Под катом 25 слайдов, объясняющие основы Kafka для детей и гуманитариев. И много милых выдр.
Легко по течению
![](https://habrastorage.org/webt/yj/ob/j7/yjobj76tb3btclj3ygqs6twffsq.gif)
Поначалу, в лесу было тихо, и только две семьи выдр жили среди деревьев и рек.
![](https://habrastorage.org/webt/rt/se/a9/rtsea9liidokb7b9fcll52uutom.gif)
Всякий раз, когда им нужно было поделиться новостями, они просто разговаривали друг с другом напрямую.
Они делились новостями о вечеринке в честь дня рождения, новых гостях и других событиях, происходящих в лесу.
![](https://habrastorage.org/webt/4k/br/ht/4kbrht2_tt_sritax08iluafp8k.gif)
Со временем, все больше и больше выдр переселялось в лес.
И точно так же росло количество происходящих в лесу событий.
![](https://habrastorage.org/webt/nc/e2/52/nce252mvsebzxeyhlvdqabeyepu.gif)
Это было целым вызовом для маленьких выдр. Каждый раз, когда у выдры были новости, чтобы поделиться ими, она должна была найти каждую другую семью и рассказать им лично.
![](https://habrastorage.org/webt/i9/xp/j9/i9xpj9d2aioedvl-uqpdia2y50m.gif)
Это не только занимало много времени, но было чревато ошибками.
Что если какая-то выдрячья семья была на пикнике, и не могла получить уведомление о предстоящем событии?
![](https://habrastorage.org/webt/tl/qm/48/tlqm489a4qng4piurlxyfk40yoc.gif)
Ну, тогда выдре, которая хотела оповестить соседей, придется вернуться позже или сдаться.
![](https://habrastorage.org/webt/4h/mk/ld/4hmkldvyp3cmyhivfc5a5wmauos.gif)
Поскольку остальные выдры общались друг с другом лично, говорили, что они Тесно Связаны.
Быть тесно связанными супер мило, но это делает коммуникацию с другими сложнее. Это называется Проблема Масштабирования.
![](https://habrastorage.org/webt/yo/l1/ag/yol1aga0ujonw39nn9c7cpew_3a.gif)
Именно тогда у одной маленькой выдры по имени Никси, появилась идея, которая навсегда изменила лес.
По лесу текла огромная река Кафка, и Никси знала, что выдры могу использовать эту реку для общения.
Вы можете установить Kafka в своем лесу:
# clone the repository
git clone \
https://github.com/round-robin-books/gently-kafka.git
# start kafka
docker-compose up
![](https://habrastorage.org/webt/kz/30/6k/kz306kzy_f_bqoltlzobasmpvui.gif)
Она даже сочинила песню, чтобы объяснить, как это работает:
События свои
В реку ты опусти,
Река их отнести
Сможет выдрам другим.
Что о событиях,
Плывущих в потоке,
Этот путь удивителен,
Мы все тут в шоке.
![](https://habrastorage.org/webt/ap/1o/dr/ap1odrvaxztryczcrpv0jnkx5d0.gif)
«Не отстанешь ли ты?» — вмешался дельфин
«Нельзя оставлять все на милость глубин!»
Не будет в доставке такого.
Мы командой реку разделим,
На множество мелких потоков
И вместе достигнем цели.
Давайте посмотрим, как это рабоnает
![](https://habrastorage.org/webt/up/s9/yq/ups9yqjkyihbdbq-itn4xa0flhi.gif)
Во первых, выдра наблюдает Событие, что-то, что произошло в определенный момент времени.
К примеру, «Сегодня вернулись пчелы» — это событие.
![](https://habrastorage.org/webt/on/yu/1q/onyu1qjeyiofrdxkjyjk44opx74.gif)
Дальше, выдра создает Запись о событии.
Записи (которые иногда называют сообщения) включают время события (отметка о времени) и дополнительную информацию о событии.
![image](https://habrastorage.org/getpro/habr/post_images/5b8/d36/287/5b8d3628711f488f94b21a90c75b227c.gif)
Тогда выдры смогут решать в какую часть реки направить это сообщение.
Река делится на потоки, которые называют Топики, которые делают организацию сообщений проще.
![image](https://habrastorage.org/getpro/habr/post_images/1dd/f78/bc6/1ddf78bc6ea9d3755f5cc330d7e591c9.gif)
В итоге, выдры бросали свои сообщения в потоки (топики), чтобы другие выдры могли их найти.
По началу они использовали стеклянные бутылки, но бутылки просто уплывали.
![image](https://habrastorage.org/getpro/habr/post_images/681/a64/68b/681a6468bd48e9def147e469011bc2bf.gif)
Тогда, выдры переключились на стеклянные поплавки. Поскольку поплавки оставались на месте и никуда не уплывали, это было названо Устойчивостью.
Устойчивость важна, потому что это позволяет выдрам читать сообщения когда они захотят, к примеру после их пикника.
2 типа выдр
![image](https://habrastorage.org/getpro/habr/post_images/490/491/6d9/4904916d9c3fa730e363633d95a90cbe.gif)
Выдры, которые помещают сообщения в реку, называются Продюсеры.
Продюсеры кидают маленькие партии сообщений в реку, не зная, кто придет читать их.
Незнание помогает Разделять системы,… то есть выдр, которые создают события, и которые читают события.
![image](https://habrastorage.org/getpro/habr/post_images/9e5/74f/f73/9e574ff73045b37c1a821bc98e143598.gif)
Выдры, которые читают события в потоке называются Консьюмеры.
Консьюмеры следят за любым топиком, который их интересует.
Например, выдры Первой помощи следят за топиком с лесными алертами, так что они могут реагировать в чрезвычайных ситуациях (как в ситуации с пчелами).
![image](https://habrastorage.org/getpro/habr/post_images/b5e/a61/735/b5ea6173531390eeff2661fab904e2c5.gif)
Эта система работает хорошо, но спустя какое-то время река становится слишком загруженной огромным количеством событий. Как же маленьким выдрам все успеть?
Будучи социальными животными, они предпочитают работать вместе. Во первых, они скидывают огромные камни в реку, разделяя каждый топик на небольшое количество потоков, или Разделов.
![image](https://habrastorage.org/getpro/habr/post_images/31d/163/bf6/31d163bf68002905b602c6753412f5d4.gif)
Тогда, один член семьи, так называемый Лидер Группы, назначает подмножество мелких потоков (разделов) каждому члену семьи.
Это подразумевает, что каждая выдра ответственна только за ту часть потока, которую она мониторит.
![image](https://habrastorage.org/getpro/habr/post_images/057/cf6/7e0/057cf67e08efd3adb1731a4729dc6303.gif)
Работая совместно в этом случае, каждая выдрячья семья называется Группой Консьюмеров, которая успевает следить за своей частью потока сообщений, сколько бы их не было всего в реке.
![image](https://www.gentlydownthe.stream/images1500/running.gif)
Более того, если выдра заболела или у нее есть дела, ее работу можно поручить другой выдре в ее группе.
Поскольку кто-то всегда был рядом, выдры были Высоко доступными.
И поскольку они могли справляться с Незапланированными Ситуациями, они были Отказоустойчивыми.
![image](https://habrastorage.org/getpro/habr/post_images/73a/605/058/73a605058c35dceae80f906b6a98d75a.gif)
Еще существовала магическая часть леса, Земля Потоковой Обработки, где выдры могли делать реально классные вещи с событиями в реке.
![image](https://habrastorage.org/getpro/habr/post_images/d82/f45/7e4/d82f457e43b767c7355c2a43aa8036ad.gif)
Целая книга написана об этом магическом месте: Mastering Kafka Streams and ksqlDB
![image](https://habrastorage.org/getpro/habr/post_images/6de/fc4/4a5/6defc44a59d296e390a5a2a4d2fcf2e6.gif)
Выдры также построили дороги, которые называются Кафка Коннекторы, чтобы донести сообщения других сообществ в реку Кафка. Все присоединились к веселью.
![image](https://habrastorage.org/getpro/habr/post_images/02c/00b/bef/02c00bbef3befe86323c94c111ae854f.gif)
Кафка продолжала помогать многим другим во всем мире. И возвращалась обратно в лес.
Жизнь шла своим чередом многие годы, а выдры жили долго и счастливо.
Я не удержалась, вот вам несколько фактов про выдр:
![](https://habrastorage.org/webt/al/-e/su/al-esudkg-4c8uxslcelqvh2wlk.gif)
Выдрята, или щенки выдр, спят у мам-выдр на груди.
![](https://habrastorage.org/webt/e2/2_/h8/e22_h8y4nht9a2cv92gfsf7ncr0.gif)
Взрослые выдры держат друг друга за лапки во сне, чтобы их не разделило течение.
![](https://habrastorage.org/webt/9r/bk/vk/9rbkvkjaqptvm_9rz6u6kwcjeh8.png)
А одинокие выдры, чтобы не дрейфовать, заворачиваются в водоросли.
Строго говоря, автор использует термин «otter», что переводится как выдровые, и включает себя 13 видов животных с распространением по всему миру, кроме Австралии.
И если вы действительно использовали этот материал на детях в образовательных целях, то завершить можно речевым упражнением:
«В недрах тундры выдры в гетрах тырят в ведра ядра кедров. Выдрав с выдры в тундре гетры, вытру выдрой ядра кедра, вытру гетрой выдре морду — ядра в вёдра, выдру в тундру.»