[HN Gopher] I wrote a children's book / illustrated guide to Apa...
       ___________________________________________________________________
        
       I wrote a children's book / illustrated guide to Apache Kafka
        
       Author : mitchum_
       Score  : 674 points
       Date   : 2021-06-17 16:19 UTC (6 hours ago)
        
 (HTM) web link (gentlydownthe.stream)
 (TXT) w3m dump (gentlydownthe.stream)
        
       | faster_harder wrote:
       | This is awesome! I will prefer all my technical documentation in
       | children's book format from now on.
        
         | searchableguy wrote:
         | Agreed. Author has done magnificent work on the illustrations
         | and animations.
         | 
         | This prompted me to make an awesome repo to collect children's
         | books on technical topics (which I have seen a few on HN).
         | 
         | https://github.com/searchableguy/awesome-illustrated-guides
         | 
         | I couldn't find a similar list. If there's one, let me know.
        
         | monksy wrote:
         | Why?
        
           | jabroni_salad wrote:
           | I like the novelty of it. I have a copy of The Manga Guide to
           | Databases at my desk that I occasionally 'lend out' to people
           | that mess up my databases. It won't turn anyone into a db
           | hero but it's a decent primer at least.
        
             | sdoering wrote:
             | What the heck. I didn't know this was a thing. Thanks for
             | the pointing it out.
        
           | michaelcampbell wrote:
           | Different strokes, I guess; I can't count the number of
           | people that openly gush about _why's Ruby book with the cats
           | or whatever, but to me it just read like the ravings of a
           | highly functional something-opath. But reasonable people can
           | disagree, and I'm sure I'll get downvoted for disagreeing
           | with the hivemind.
        
             | bee_rider wrote:
             | I don't really get these weird ways of explaining different
             | technologies, just give me a straightforward text
             | description. But straightforward text isn't going anywhere
             | and it doesn't hurt me if people want to read mangas about
             | foxes or whatever.
        
               | monksy wrote:
               | Yea that's where I was going with asking why. It feels
               | like it's a trendy thing is to convert a technical thing
               | into a children's book. (Which is odd.. children don't
               | need that book.. so it's for an adult that wants to
               | consume children's literature)
               | 
               | Note: I'm not against creative attempts to explain
               | technical concepts. But the form to me seems odd, and
               | that it feels like we're producing very short tutorials
               | in a childrens format. That's even weirder.
        
             | throw1234651234 wrote:
             | My initial impression was "more of this garbage" - but it
             | was really well done in the sense that it distilled the
             | core functionality of the system in an easy-to-understand
             | form.
             | 
             | The guy above you mentioned manga-guides to stuff, which
             | utterly fail at their job, which again, is to distill key-
             | information in an entertaining, easy-to-read, general (but
             | fully accurate) manner.
        
           | caffeine wrote:
           | _why, that's why.
        
       | djohnston wrote:
       | Really well done, bravo!
        
       | alex_g wrote:
       | This is really cool! Clearly a lot of thought went into making
       | it.
       | 
       | That said, I feel like the otters could have just made a bulletin
       | board to solve their problem
        
       | cupcake-unicorn wrote:
       | Hey, this is great - what tools did you use to make this?
        
       | phyrex wrote:
       | That was glorious! Do kubernetes next!
        
       | mtnGoat wrote:
       | pretty clever!
       | 
       | on page 12, i think you mean "streams" rather than "seams". no?
       | also, the page title is "gently down the steam", is an R missing?
        
       | temp8964 wrote:
       | How is this different from REST API? Serious question. Why get
       | downvoted?
        
         | krapht wrote:
         | You're getting downvoted because your question makes no sense.
         | They are not related at all, which means you must not have read
         | the link.
        
           | temp8964 wrote:
           | I read the whole thing. That's why I have the question. So
           | they used to have messages send to everyone (websocks?), now
           | they have the messages persistent in different channels for
           | people to consume. Isn't this just different entry points of
           | a Rest API?
        
         | simonh wrote:
         | Because there's no meaningful way to answer that here. It's
         | like asking what's the difference between trawler fishing and
         | open cast mining.
        
           | temp8964 wrote:
           | I don't understand your metaphor. But thanks.
        
       | inshadows wrote:
       | Your drawing skills are good. Is this scanned pencil drawing with
       | post-processing? Forget Kafka! How do I learn to draw like this?
       | :-D
        
       | crispyambulance wrote:
       | It's really beautiful.
       | 
       | Surprising too. I would have expected a far darker approach to
       | this subject!
       | 
       | Perhaps something like 60's horror comics genre, or better, like
       | those Jack Chick religious tracts where people end up in burning
       | in Hell forever as an immediate consequence of a sin against god.
        
         | jimbokun wrote:
         | Or something written in the style of Franz Kafka.
        
         | zwkrt wrote:
         | It's rare a piece of tech has a more fitting name!
         | 
         | "Is your orgs politics so complicated that direct team-to-team
         | communication has broken down? Is your business process subject
         | to unannounced violent change? Bogged down by consistent DB
         | schemas and API versioning? Tired of retries on failed
         | messages? Introducing Kafka by Apache: an easy to use, highly
         | configurable, persistently stored ephemeral centralized
         | federated event based messaging data analytics Single Source of
         | Truth as a Service that can scale with any enterprise-sized
         | dysfunction!"
        
           | akra wrote:
           | While I think your comment is in jest I've seen people take
           | Kafka too far causing some interesting large scale
           | organization issues. In companies with "org politics", just
           | like any other technology, Kafka can and probably will be
           | abused to make life harder for certain teams. It's a nice
           | tool but marketing something as the holy grail/silver bullet
           | of dysfunctional corporations just risks making them worse
           | IMO. It also potentially risks over-engineering.
           | 
           | From my experience you still need to worry about schema's and
           | API versioning - there's no technological way around that.
           | Yes there's schema registry but breaking changes to schema's
           | still need to be dealt with just like any other API. Code
           | still needs to be changed on all clients to deal with things
           | like this. Also there is still coupling (loose coupling)
           | through the topic itself - unfortunately I've been bitten by
           | this where all the coupling is in the broker and its
           | impossible to make any changes to anybody for fear that there
           | is some unknown part of the system that could break. Because
           | everyone has access to the central bus there's a big risk
           | without proper control the amount of integrations increases -
           | there is still some form of coupling. Not having tight
           | authentication around topics and such increases this problem.
           | APIs also tend to be more curated than topics - people know
           | they create a coupling point and you will have to deal with
           | that. Not a problem with KAFKA per se - but at least where
           | I've seen it used the practices around topics isn't great
           | whereas with API's there tends to be more experience around
           | this area.
           | 
           | Its not often used as a long term "source of truth" because
           | from what I've been told it isn't recommended for long term
           | persistence either, or direct querying. Which means data
           | duplication, which in some environments creates problems.
        
         | asimjalis wrote:
         | You might be channeling a chapter on dead-letter-queues in
         | Kafka.
        
       | RcouF1uZ4gsC wrote:
       | This reminds me of "The Story about Ping". The Amazon review of
       | is classic.
       | 
       | https://www.amazon.com/review/R2VDKZ4X1F992Q
        
         | allenu wrote:
         | The OP link is blocked for me (work VPN) but seeing the title
         | immediately made me think of "Mommy, Why is There a Server in
         | the House?" https://www.amazon.com/Mommy-Why-There-Server-
         | House/dp/16053...
        
         | cbsmith wrote:
         | I was thinking more the Little LISPer/Smalltalker.
        
         | mttpgn wrote:
         | > Using deft allegory, the authors have provided an insightful
         | and intuitive explanation of one of Unix's most venerable
         | networking utilities. Even more stunning is that they were
         | clearly working with a very early beta of the program, as their
         | book first appeared in 1933, years (decades!) before the
         | operating system and network infrastructure were finalized.
         | 
         | The fact that since January 2000 nearly 16k people "found this
         | helpful" opened my eyes to how Amazon book reviews really do
         | have the potential to be "classic".
        
       | dyml wrote:
       | This was really great. I would like to see more content like
       | this.
        
       | gabriel9 wrote:
       | This was nice and refreshing. Thank you.
        
       | MartijnBraam wrote:
       | Reminds me of the Microsoft Server illustrated childrens book :D
       | 
       | https://imgur.com/gallery/kvATA
        
         | jedberg wrote:
         | Holy cow. I had no idea this existed, but it's amazing in a
         | terrible way.
        
       | pashariger wrote:
       | Cutest thing I've seen today. Every tech team should hire a
       | children's book illustrator to explain their products/tech, IMO.
        
       | racl101 wrote:
       | Wow! That was cool.
       | 
       | Now I want a Docker children's book please.
        
         | CGamesPlay wrote:
         | I mean, Kubernetes is a superset of Docker, right?
         | https://www.cncf.io/the-childrens-illustrated-guide-to-kuber...
        
           | alexjplant wrote:
           | Not really (unfortunately). Kubernetes can leverage a number
           | [1] of container runtimes - OpenShift uses CRI-O, for
           | instance. There's also the problem that Docker can refer to a
           | container runtime, orchestration engine (Swarm, which is
           | analogous to k8s), CLI tools (`docker` and `docker-compose`),
           | or HTTP API (registry). At my last few gigs the maintenance
           | of separate configs for docker[-]compose and k8s has been a
           | consistent pain point.
           | 
           | The container ecosystem is pretty complicated :-).
           | 
           | [1] https://kubernetes.io/docs/setup/production-
           | environment/cont...
        
         | chrischen wrote:
         | And then do Monads.
        
       | strzibny wrote:
       | Beautiful. Great work, really enjoyed the animations!
        
         | augustk wrote:
         | I found the animations very distracting when trying to read the
         | text. To me the animations didn't add anything.
        
       | el_seano wrote:
       | Absolutely adorable! Really excellent work :D
        
       | sciencewolf wrote:
       | This is outstanding!
        
       | jwilber wrote:
       | Extremely well done! What did you use for the drawings?
        
       | bdamm wrote:
       | Reminds me of "SCADA and Me (A book for Children and
       | Management)"[1].
       | 
       | [1]: https://www.amazon.com/SCADA-Me-Book-Children-
       | Management/dp/...
        
       | maurits wrote:
       | Super cool, thank you. Might I request Kubernetes?
        
         | momothereal wrote:
         | https://azure.microsoft.com/en-ca/resources/videos/the-illus...
         | :)
        
       | octos4murai wrote:
       | Taking ELI5 to another level!
        
       | yongjik wrote:
       | I can't shake the feeling that the otters could have used a
       | bulletin board - on the left side they could have written "what
       | kind?", in the middle "when", and on the right more detailed
       | description as necessary. Then any otter in a hurry could skim
       | through the left column, find topics they liked, and just read
       | that part from the right.
       | 
       | Sorry, it's not really a fair criticism, and I did like the art
       | style - I just don't like Kafka much because I had to deal with
       | it in places where it didn't make much sense.
        
       | stakkur wrote:
       | This...is brilliant. I could also see this as a print book.
        
       | muhammadusman wrote:
       | Finally, I can learn what kafka is :D
        
       | Hackbraten wrote:
       | This is amazingly cute. And the analogies feel like they've been
       | very carefully chosen. Bravo!
        
       | smusamashah wrote:
       | Wow this is such a beautiful read. Has anything like this been
       | done before for some other topic?
       | 
       | P.S. This sentence is hard to grasp for me "This Unawareness
       | helps Decouple systems that produce events from otters that read
       | events." https://www.gentlydownthe.stream/#/20
        
         | jpdb wrote:
         | The selinux coloring book is another great example:
         | https://people.redhat.com/duffy/selinux/selinux-coloring-boo...
        
           | tbrock wrote:
           | The penguin in this one is nightmare fuel
        
         | MasterScrat wrote:
         | The Reinforcement Learning algo A2C was also illustrated in a
         | similar way:
         | 
         | https://medium.com/hackernoon/intuitive-rl-intro-to-advantag...
        
         | jedberg wrote:
         | I don't have a link but the NSA has a coloring book about
         | cryptography that's in the public domain, since it was created
         | by the government with tax dollars and has no copyright notice.
         | I actually have a copy I've been meaning to scan, I'm just
         | afraid of ending up on a list if I do. :)
        
         | clintonc wrote:
         | https://www.cncf.io/the-childrens-illustrated-guide-to-kuber...
         | is a famous example.
        
         | jimbokun wrote:
         | Does Why's Poignant Guide to Ruby count?
         | 
         | https://poignant.guide/
        
         | onlyrealcuzzo wrote:
         | I'm glad people are enjoying this. I wrote a story two years
         | ago about Queues / Kinesis - and am in the process of getting
         | it illustrated. I doubt it'll make any money, but it's good to
         | know that people enjoy this type of thing!
        
         | SamBam wrote:
         | > "This Unawareness helps Decouple systems that produce events
         | from otters that read events."
         | 
         | It simply means that the producer doesn't need to maintain a
         | list of listeners. It just throws the event into the stream,
         | and assumes that anyone who wants to read it will be able to do
         | so.
         | 
         | RSS vs an email list, I guess.
        
         | jbrnh wrote:
         | Not quite the same, but "Life on the Infinite Farm"
         | https://www.math.brown.edu/reschwar/farm.pdf
        
       | c141charlie wrote:
       | Outstanding! Purchased the eBook. Will read to my son who wants
       | to be a coder when he grows up.
        
         | c141charlie wrote:
         | Also more approachable than the little schemer :-)
        
           | touisteur wrote:
           | Or the little prover. Ugh.
        
       | 41209 wrote:
       | Can you do this for every technology stack, maybe one for multi-
       | threading in C sharp
        
         | parafactual wrote:
         | monad tutorial via children's book
        
       | williesleg wrote:
       | Nobody gives a shit.
        
       | mawise wrote:
       | With the initial focus on families sharing news, this made me
       | think about Facebook (or better yet, RSS!)
        
       | nebulous1 wrote:
       | I love that this is live before Kafka:
       | https://www.gentlydownthe.stream/#/4
       | 
       | And this is life after Kafka:
       | https://www.gentlydownthe.stream/#/24
        
         | StavrosK wrote:
         | While I love the commentary and found it funny, it would more
         | accurately be "life before and after a huge volume of
         | messages". Kafka isn't the problem in this specific case.
        
       | hank_z wrote:
       | I love this. Great work!
        
       | markphip wrote:
       | This is great, I was pleasantly surprised to see the feedback
       | here has all been positive as well.
        
       | posharma wrote:
       | Amazing! Really nice.
        
       | winkelwagen wrote:
       | WOW, this is so nice. The drawings are really cute and the
       | animations give it its own style. Bit of feedback the color palet
       | all over the place. Could use a bit of hierarchy to help the
       | focus of the viewer and reuse same colors to make it more
       | coherent.
        
       | jmcguckin wrote:
       | cute. ELI5, but with beavers.
        
       | vladstudio wrote:
       | I've been thinking about comics explaining different IT concepts,
       | but so far only produced one :-)
       | https://vlad.studio/wallpaper/?how_internet_works
        
         | duck wrote:
         | Cool to see you on HN! I use to rotate through all your
         | wallpapers back in the day (what seems like forever ago) - glad
         | to see you're still at it!
        
       | sandreas wrote:
       | Awesome art - thanks for sharing. Who is the artist? You?
        
         | j4ah4n wrote:
         | Written and illustrated by Mitch Seymour (on the cover)
        
       | bombcar wrote:
       | I can't find the feedback link but I feel the animations could be
       | a bit slower - hard to read the small words when flashing so fast
       | on iPhone.
       | 
       | Otherwise quite well done!
        
       | dave_sid wrote:
       | This is great. Can you write me one for elastic search now :-D
        
       | ghufran_syed wrote:
       | This is fabulous!
       | 
       | Is there a typo at https://www.gentlydownthe.stream/#/22 ?
       | 
       | Current version: "First, they dropped large stones into the
       | river, splitting each topic into a _smaller_ number of streams,
       | or Partitions. "
       | 
       | I know nothing about Kafka, but I think maybe this should be:
       | "First, they dropped large stones into the river, splitting each
       | topic into a number of _smaller_ streams, or Partitions. "
       | 
       | (my emphasis for both versions) "
        
       | janci wrote:
       | Nice. I expected Kafka to be a bird, not a river.
        
       | throwaway_fjmr wrote:
       | This is effin' beautiful.
        
       | marvindanig wrote:
       | Awesome! Love the illustrations and the subtle animations
       | underneath.
       | 
       | Quick feedback: My nephew prefers page turns (curling) on their
       | iPad. I assume that he prefers it over a powerpoint style slides
       | that we currently have on your book. Well, at least he spent some
       | time flipping through the animated pages!
        
       | dj_gitmo wrote:
       | This we very helpful for someone unfamiliar with Kafka. You could
       | probably get a job doing this.
        
       | juliend2 wrote:
       | This is great because (like _why's {poignant} guide to ruby did
       | for me) it breaks the psychological barrier that I have to even
       | get an intro to those technologies -- as an adult developer --
       | because it has new concepts that are foreign to me.
        
       | testplzignore wrote:
       | While the otters are busy planning elaborate ways to tell each
       | other about neat rocks, the much smarter humans are revving up
       | their chainsaws to cut down the forest.
        
         | parafactual wrote:
         | I'm not sure I'm following the analogy anymore.
        
       | data_spy wrote:
       | I will show this to my daughter later today!
        
       | [deleted]
        
       | cdnsteve wrote:
       | An exceptional form of creative education on a difficult
       | technical topic with stunning visuals that is intuitive and fun.
       | Brilliant!
        
       | 101008 wrote:
       | This is awesome. Congratulations for creating this!
        
       | Epskampie wrote:
       | I love this kind of high-level introduction of what a thing is.
       | Sometimes very hard to find for technologies. Also otters are
       | cute.
        
       | rdevsrex wrote:
       | It's so cute and I really enjoyed the high level overview of
       | Kafka.
        
       | fierro wrote:
       | How will the otters handle cross region communication?
        
       | pixelmonkey wrote:
       | I've been trying to put my finger on why Kafka so well captured
       | the imagination of many distributed systems engineers. My best
       | answer is, "low-cost publish and multi-consumer data-sharded
       | subscribe is the key to resilient horizontal scaling and
       | parallelism."
       | 
       | Kafka has its flaws, but it really served us well. We have Python
       | Data Engineers who focus on distributed system design[1], and
       | Kafka is one of the team's least finicky open source components,
       | but it is used _everywhere_ , and it basically enables the entire
       | rest of the real-time data processing stack.
       | 
       | [1]: https://www.parse.ly/careers/python_data_engineer
        
       | geodel wrote:
       | Could be just me. I see Apache kafka more nightmarish than
       | bureaucracy in 'The Castle' or Police/judiciary in 'The Trial'
       | from author Franz Kafka. Mr Franz btw stole his last name from
       | this very famous Apache Kafka project.
        
         | dkarl wrote:
         | Individual Kafka consumers and producers tend to have simple
         | behavior, which is good, and initially plugging them together
         | yields simple, predictable systems, but people tend to keep
         | going until they experience pain, at which point they have a
         | system that is right at the limit of what they can understand.
         | Then further feature work pushes them over the limit into
         | darkness.
         | 
         | I think Kafka needs the equivalent of OpenAPI and Redoc, a
         | simple spec and document generator, but for groups of consumers
         | and producers rather than single applications. This would
         | increase the tractability of complex systems, but it would also
         | let you see the system getting more complex over time, even
         | when you haven't reached the pain point yet.
        
           | cbsmith wrote:
           | KSQL seems to address this gap.
        
           | morelisp wrote:
           | https://www.asyncapi.com/ is in its infancy but is attempting
           | what you describe.
           | 
           | (I view OpenAPI as a near-failure, but, good luck to everyone
           | trying.)
        
             | dkarl wrote:
             | Thanks for the tip; that's a really cool project. It looks
             | like the documentation generator for it works on a single
             | file at a time, and a single file defines a single service.
             | I was thinking of something that works on the level of a
             | system of interacting services. I want a tool that reads
             | the API specifications for a group of services and
             | documents the interactions between them. I'd like to look
             | at service X and see that it emits message Y on queue Z,
             | and then see which services read message Y on queue Z, jump
             | to their documentation, etc. I think the AsyncAPI format is
             | perfect to build on, though. I'll start there if I decide
             | to take a hack at it.
        
         | gilbetron wrote:
         | What do you find nightmarish about it?
        
           | manishsharan wrote:
           | Kafka is very configurable .. and teams struggle to optimize
           | the production deployment configuration and tend to second
           | guess their decisions. Getting a managed deployment from
           | Confluent etc. mitigates these issues as you can count on
           | proven SMEs to deliver a well optimized solution. However, if
           | you were to DIY , you might not be so blessed. Disclosure: I
           | never did a DIY Kafka prod deploy -- my employer was already
           | a Confluent customer.
        
         | rjzzleep wrote:
         | It's quite beautiful, but put so simply it does look
         | nightmarish.
         | 
         | "Then, the otters would decide which part of the river to put
         | the message in"
         | 
         | I'd imagine a child looking at this going like "why are they
         | doing this to the river". Why are they are throwing things into
         | the river. :D
        
           | lostcolony wrote:
           | No, put so simply it's cute. In production it's nightmarish.
        
         | monkeyfacebag wrote:
         | Maybe it's just you, maybe not. It would be beneficial for you
         | to provide some substance to your claim. Then we would have
         | something to discuss.
        
           | geodel wrote:
           | Unfortunately we do not have something to discuss. All these
           | consumer/producer/broker failing randomly, system behaving
           | erratically is me doing it wrong. Those white papers from
           | Confluent and testimonial from customers are proof that Kafka
           | works fine.
        
         | Hamuko wrote:
         | Is this comment intentionally Kafkaesque?
        
       | asimjalis wrote:
       | I love this.
        
       | operatorius wrote:
       | Really enjoyed reading it. the analogies are very clear, easy to
       | understand and fun to read. the illustrations are amazing as
       | well. wish there was more of it :)
        
       | unknown_error wrote:
       | This is one of the best things I've ever seen on the web (or off
       | it!). It's now one of my favorite books <3
       | 
       | Thank you for sharing this and really brightening my day.
        
       | jimmyjazz14 wrote:
       | I can't help but feel the otters kinda over-engineered this whole
       | thing.
        
         | jeffbee wrote:
         | I think the otters should question some of the things that are
         | meant to be axiomatic. Is tight coupling really a scalability
         | problem? Otters should be prepared to defend these statements.
         | Nixie's song might be the vacuous equivalent of "Mongo is web
         | scale".
        
           | jasonhansel wrote:
           | Also: did adding the stream really decouple the otters, or
           | did it just make the coupling less visible? After all, the
           | consuming otters may still depend a great deal on the precise
           | behaviors of the producing otters. It's just that now the
           | producing otters don't _know_ in what ways other otters
           | depend on them, making it harder for them to make changes
           | without harming their otter-dependents.
        
             | [deleted]
        
         | codeulike wrote:
         | You need some other animals - Beavers maybe? - who are in the
         | same forest and who just have a simple system of scratching
         | messages onto the side of a single large tree somewhere that
         | everyone goes to look at regularly. Then at the end see how
         | many picnics the beavers missed vs how many otters lost their
         | fucking minds from the complexity of the system and then see
         | who comes out ahead.
        
       | void_mint wrote:
       | This is great. Is there a way I can pay for it?
        
       ___________________________________________________________________
       (page generated 2021-06-17 23:00 UTC)