[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)