Kafka vs. RabbitMQ vs. Messaging Middleware vs. Pulsar

Поделиться
HTML-код
  • Опубликовано: 6 сен 2024
  • Get a Free System Design PDF with 158 pages by subscribing to our weekly newsletter: bit.ly/bytebyt...
    Animation tools: Adobe Illustrator and After Effects.
    Checkout our bestselling System Design Interview books:
    Volume 1: amzn.to/3Ou7gkd
    Volume 2: amzn.to/3HqGozy
    The digital version of System Design Interview books: bit.ly/3mlDSk9
    ABOUT US:
    Covering topics and trends in large-scale system design, from the authors of the best-selling System Design Interview series.

Комментарии • 90

  • @MobileComputing
    @MobileComputing 2 месяца назад +49

    Cool, some names of MQ tools were mentioned. Where is the "vs" in "Kafka vs. RabbitMQ vs. Messaging Middleware vs. Pulsar"?

  • @CalifornianViking
    @CalifornianViking 2 месяца назад +16

    @ByteByteGo - Thanks for another good video.
    A word of caution. While message queues are impressive, they are often misapplied. I have seen message queues make systems slower and less reliable while consuming a lot of resources that could have been used to speed up other parts of the system.
    It would be great if you could create a video that explains when (and when not) to use a message queue.

    • @br.3250
      @br.3250 2 месяца назад +1

      Do you know anything about that, I'd certainly be useful

  • @chetankhandave1072
    @chetankhandave1072 2 месяца назад +45

    Very good information, but it can much better if you explain how Stream processing works in Kafka , RabbitMQ, Pulsar. Polling and pushing in each techniques is very important to know.

    • @jayrigger7508
      @jayrigger7508 2 месяца назад +3

      sounds like a good thing for you to work on and post yourself on own channel

    • @alexw1306
      @alexw1306 2 месяца назад +5

      @@jayrigger7508 why so arrogant? He literally suggested a potential improvement and you come by and say "Just do it yourself".

    • @blackula911
      @blackula911 2 месяца назад

      That’s not an improvement, but literally a different topic.

  • @miran248
    @miran248 2 месяца назад +17

    Worth mentioning is also (jetstream) nats, trivial to scale, has routing, partitioning, queueing, pub sub; it also has key value store, object store.
    Imagine if kafka and redis had a baby.

    • @rogsiel
      @rogsiel 2 месяца назад

      Wow, didn't know of it. Specially the object store seems cool

    • @miran248
      @miran248 2 месяца назад +1

      @@rogsiel While i haven't used their object store yet, i am using the key value store to persist actor's internal state, that way i don't need to rebuild it (event sourcing pattern) before processing the requests.
      The only issue i have with nats is the lack of backup / recovery options, seems like replication + a recovery cluster is the preferred way.

    • @rogsiel
      @rogsiel 2 месяца назад

      oh that's cool . Will definitely look into it. Having pub/sub and object store together is interesting.
      I'm already doing the exact same thing for backups and persistent data.

    • @nikitamyazin6586
      @nikitamyazin6586 2 месяца назад

      Nats doesn’t have partitioning, and apparently never will. You can emulate it with channels, but you won’t get rebalancing, for example. So it’s more like a cousin to Kafka

    • @miran248
      @miran248 2 месяца назад

      @@nikitamyazin6586 Are you talking about jetstream topics or old nats streaming server (stan)?
      You can have multiple consumers on the same topic and as long as they belong to the same group they will all act as one.
      You can also partition topics, based on some (hashed) key and split incoming traffic across multiple workers, so that the same topic always reaches the same worker, which is very useful with actors.
      I'm sure you've seen this and we're just thinking of different kinds of partitioning.
      docs DOT nats DOT io/nats-concepts/subject_mapping

  • @fadthegreat
    @fadthegreat 2 месяца назад +2

    wow, within 4min we already get and understand the high level of each message queueing from old to latest. Thank you

  • @ManticoreRoko
    @ManticoreRoko 2 месяца назад +6

    Why are you forget Redpanda(and Redpanda ecosystem)?? Redpanda is most powerful streaming solution today working C++ and GO under hood + Kafka Api. Please talk about Redpanda too

    • @angryktulhu
      @angryktulhu 2 месяца назад +2

      No 😂

    • @wind1309
      @wind1309 2 месяца назад

      vendor lock in ecosystems get outta here

  • @NielsBasjes
    @NielsBasjes 2 месяца назад

    Love your videos. You mentioned exactly once semantics as a feature of Kafka. I have found that another game changer is the capability of building systems that also maintain a guarantee of message order per key (usually a session id) which makes all of it (often in combination with Apache Flink) suitable for a whole new class of applications.

  • @artemvasilyev1637
    @artemvasilyev1637 2 месяца назад +1

    what service do you use to draw these animations?

  • @kervinpeguero4468
    @kervinpeguero4468 Месяц назад

    Hi, I do not know your name, but I really enjoyed your videos and learned so much from them. In the diagram, (0:17min) I think there is a typo in the flow from passenger management to notification shouldn't be "Notify Driver" instead of "Notify Passenger" or invert the flow from the notification queue to passenger. If I'm wrong, please let me know if you have time of course. Hope you have a really nice day or night Mr. and keep going.

  • @jpzhao19403
    @jpzhao19403 Месяц назад

    The animated flow charts and diagrams are very impressive, which tool did you use to create those?
    BTW all the videos you created are super high quality in both content and presentation, great job!

  • @ament4069
    @ament4069 2 месяца назад +1

    Each diagram seems so informative
    Thank you

  • @JonathanDieu
    @JonathanDieu 2 месяца назад +2

    Thank you for continuing to create such helpful resources! 🐐

  • @RahulSingh-pd1cr
    @RahulSingh-pd1cr 2 месяца назад +1

    Which tool has been used for this graph can anyone tell me

  • @madhujai_shiksha
    @madhujai_shiksha 2 месяца назад

    Its good know abt latest tech trends and tools but challenging part to learn where to use them in overall system. Breaking a system into different apps is most challenging thing in real world which can only be learn by experience

  • @hentie5371
    @hentie5371 2 месяца назад +3

    What is XXX would be better title. There is no 'vs.' in the whole video. If I just throw this video's content to my tech design spec as explanation of why I picked Kafka over RabbitMQ or another way around, I will probably have to look for another job again.
    When we talk about 'vs.' we should go from advantages, disadvantages, use case (this was mentioned). No advantage or disadvantage for one over another has been mentioned throughout the video.

  • @codesafariDev
    @codesafariDev 2 месяца назад +1

    Never used IBM MQ, but would you still say that each RabbitMq, Kafka and Pulsar can be the best choice, depending on the use-case? Maybe it's just me, but the video sounds a little bit like "IBM MQ was made obsolete by RabbitMq; RabbitMq was made obsolete by Kafka; Kafka was made obsolete by Pulsar".

    • @Gladius000
      @Gladius000 2 месяца назад +2

      They were not made obsolete, they just solve different problems.
      Kafka and RabbitMQ are very different and you wouldn't use them interchangeably.
      Huge streaming volume = Kafka
      Complex pub sub = RabbitMQ
      A new solution arises as the new problem becomes significant enough and is not solved well enough with existing tech.

  • @maverickmaverick5
    @maverickmaverick5 Месяц назад

    If we buy ByteByteGo subscription will you share your powerpoint clip arts ?

  • @sanapramesh
    @sanapramesh 2 месяца назад

    Should the arrow from driver management to notification be labeled as "NOTIFY DRIVER"?

  • @MelroyvandenBerg
    @MelroyvandenBerg 2 месяца назад +1

    I don't like the cloud focuses solutions. Like the latest you showed. I want to run a message queue system on prem.

    • @manofacertainrage856
      @manofacertainrage856 2 месяца назад

      I've spent a few years with a RabbitMQ backed system on-prem. Granted, on-prem, on a VM on desktop/laptop, and on-prem in a VM in a llocal data center are all about the same thing these days. Failure modes and recovery aren't always obvious (especially if the VM is frozen and moved), but it's at least a decent solution and might be a great one depending on your circumstances.

  • @szsz2277
    @szsz2277 2 месяца назад

    This is great information! Thanks for the video. Can you do a video explaining and reviewing some of the top Platforms as a Service options? Eg. Heroku, Render, Digital Ocean, Vercel, Fly, etc. When to use them and which ones are better for which job? Thank you.

  • @Flako-dd
    @Flako-dd 2 месяца назад +1

    I looked into Pulsar recently, looks really powerful. Anybody got real-world experience already?

  • @devalshah69
    @devalshah69 2 месяца назад +2

    anyone have used ZeroMQ?

  • @alamba78
    @alamba78 2 месяца назад

    How do you create the animations? After Effects or built-in animation with Power Point?

  • @jopa19991
    @jopa19991 17 дней назад

    While Pulsar is evolution of a message queue in one way, it lacks exactly once delivery policy, which is Kafka is famous for the most

  • @kashifmahmood3803
    @kashifmahmood3803 2 месяца назад

    Great video
    How do you design animated diagram?

  • @graymcd
    @graymcd 2 месяца назад

    Don't forget about Microsoft Message Queue (MSMQ), it's still there.

  • @PeriMCS
    @PeriMCS 2 месяца назад +1

    I see Kafka is often used as message queue which it is not.

    • @qm3ster
      @qm3ster 2 месяца назад

      Persistent sharded logs as the source of truth 🥵

  • @raj_kundalia
    @raj_kundalia 2 месяца назад

    Thank you for doing this!

  • @dquangminh1991
    @dquangminh1991 2 месяца назад

    can i ask what tool to created animated diagrams like that ?

  • @GlebWritesCode
    @GlebWritesCode 2 месяца назад

    Ibm mq supports hardware failures - not so sure.
    We ran it at a fairy large company - once a new service without proper disposal code took down MQ node, no one could publish or consume a message

  • @JonnyJiang-c4m
    @JonnyJiang-c4m Месяц назад

    how about rocketmq?

  • @ShortsItalyVibes
    @ShortsItalyVibes 2 месяца назад

    How do you make these slides? What is the tool name?

  • @benzazalaid6623
    @benzazalaid6623 2 месяца назад

    hin and goog luk, please what s the sofwre wich you make your presentation

  • @zx1986
    @zx1986 2 месяца назад

    how about NATS?

  • @optimuseaacademy
    @optimuseaacademy 2 месяца назад

    please do Spark and Hadoop

  • @ihsanpro9406
    @ihsanpro9406 2 месяца назад +1

    How do you exclude NATS from here ? Come on man !

  • @shinobi77
    @shinobi77 2 месяца назад +1

    How about Redis Pub/Sub?

  • @SkEiTaDEV
    @SkEiTaDEV 2 месяца назад

    theres an incredibly nasty high pitch noise until 0:12

  • @spouter
    @spouter 2 месяца назад

    We would need implementation too for all the tools you have explained.
    Please make videos on those too.

  • @ChrisWard74
    @ChrisWard74 2 месяца назад

    Which you had included product from Microsoft in this comparison.

  • @Zmey5656
    @Zmey5656 2 месяца назад

    I use only Kafka. May be I nee to try something new.

  • @JohnSmith-op7ls
    @JohnSmith-op7ls 2 месяца назад +64

    Programming content creators: Want to know how companies you’ll never work for do things the companies you will work for don’t need to do?

    • @oskarszwajkowski
      @oskarszwajkowski 2 месяца назад +8

      Or giving you freshest framework/tool so you can rewrite your application again for no reason at all 😅

    • @JohnSmith-op7ls
      @JohnSmith-op7ls 2 месяца назад +2

      @@oskarszwajkowski Trend casing, when you need an excuse to not do real work

    • @matonolo
      @matonolo 2 месяца назад +13

      U are just mad because u cant handle more advance concepts than programming.

    • @quinnherden
      @quinnherden 2 месяца назад +5

      ​@@matonolo "More advanced concepts than programming".. what?

    • @JohnnySacc
      @JohnnySacc 2 месяца назад +14

      Event-driven microservice architecture is important to know if you want to work in backend. Not sure why you're acting like this is impractical knowledge.

  • @5353055
    @5353055 2 месяца назад

    how about rocketMQ?

  • @LindaMartin-d2h
    @LindaMartin-d2h 2 дня назад

    Treutel Island

  • @samjackgreen
    @samjackgreen 2 месяца назад

    From this video, I don't understand how there was an "evolution". It seems you are just naming arbitrary virtues of each messaging system... Very hard to follow. Cheers.

  • @Fahad-et3sc
    @Fahad-et3sc 2 месяца назад

    one day i will understand all this lol

  • @suvankarpaul8659
    @suvankarpaul8659 2 месяца назад

    🫡

  • @ianjohnson2433
    @ianjohnson2433 2 месяца назад +1

    Bro i think you are well knowledgeable but to help,why not indicate by doing than just explaining?I have never seen you code or apply these concepts.

  • @alexalexin9491
    @alexalexin9491 2 месяца назад +5

    Oh please, you must've beaten all records of unintelligibility in this video. I struggled to understand the simplest words you sais instead of getting the main ideas of the video. Can you please work on your prounciation a little, PLEASE?

    • @mtsmithtube
      @mtsmithtube 2 месяца назад +2

      There's a transcript option

    • @katushya
      @katushya Месяц назад +3

      this is a you problem, video is well explained. maybe you should learn some basics first.