I'd say most of his videos provide insights and good quality of technical detail , it would be much better if he can keep long story short , majority of people (maybe engineers also) nowadays just lose patience when they feel that they cannot finish watching / reading such video in a short while (maybe few minutes, less than half an hour)
What I like from most of your videos is that sometimes you also talk about lower OSI layers, peeling up the abstraction. It is cool, different, and solid. Thanks for developing this channel.
Before i came to this video i knew NOTHING of RabbitMQ, and after just the introduction i got a pretty good understatement of the basic functionalities, thank you for translating this to human language!
I`ve found this channel just couple days ago. VEry gib respect to author. Very clear, a bit humorous. And of top of that, just go throw list of videos. He covers a great topics. Thank you so much
My team lead told me to learn Rabbitmq for a future project. As a Junior dev I got freaked out, but now after this video it doesn't seems too much complicated, ofcouse i haven't dived deeper yet, but still the basic was pretty fine. Thank you! Btw love your talking style, very refreshing and not boring at all!
I was listening the whole video in background while I was doing other work stuff, when I'm done at work I have to Watch the video, it sounded very interesting .
WTF guys....who is talking abt his bad accent n all Just remember one thing...he knows English language hence dats why we are able to get KT...otherwise this gem 💎 would not be accessible to wide audience
Hey, you have real clear style of teaching, appretiate that. But I am afread I cannot imagine a crash course about RabbitMQ without explaining the exchanges, binding keys and queues.
It's true, I can't approach rmq along with celery, because I just can't make connections in my head because of all the terms, and if you also mention details for each term your head is going to explode ) thanks for the video)
Awesome video! Thanks for another great one Hussein! I recently discovered a really interesting stack of technologies called the TICK stack. Its four technologies so might be a little heavy for one or two videos, but I would love to hear your opinion on it and see you spin it up on docker and do some cool stuff with it! Cheers!
Here are few problems which one can find interesting: 1. Whats if multiple consumers are connected to a single Queue, and only one of them acknowledges the message and due to some reason the other consumer failed and want to process the message again, how to do this? 2. I can clearly see, very soon there will be a huge need to load balance this Pub Sub Queue model, being a stateful model is very tricky, how fo we tackle that? Thank hussain for a wonderful tutorial. Don't need your answers on this, just wanted to share my thoughts.
Good insights 1) the message that is not acknowledged because of a failure won’t be removed from the queue so the next client that starts will pick that message again. All sorts of problems with that, did the message actually got processed but couldn’t acknowledge? Did the acknowledge message get lost? Look up the two general problem 2) not sure about RabbitMQ (i think yes) but kafka does have distributed queue Glad you liked it!
This is great for start. It'd be great if you could extend this topic for a real life use case. I have read rabbitmq can be used for push notifications. How about a tutorial for that?
Loved that idea thanks for the suggestion. RabbitMQ as We discussed supports push by default so it make sense to be used for push notifications.. but honestly I think redis is better and easier to implement for such use case just because of how complicated RabbitMQ is.. still good use case and would to consider making a comparison video.. thanks! Cheers
I am glad you used Node for the demo session. While all languages have their pluses and minuses, at least with Node, you picked a universal language in JavaScript that developers in all industries can relate to.
An Awesome Video !!. Can you also do an admin video for RabbitMQ ? Like how to manage the queues, how to republish a queue. How to republish a dead letter queue etc or if u already have it, kindly point me to it. Thanks a lot and your entire video is awesome and not boring at all. Keep up the good work of teaching others...👍
Glad it is! let me know if there is anything I could do better or simplify or if there is a point I probably missed (which I probably have haha) Cheers! and stay awesome!
I disagree with your conclusion. First of all, the complexity you've described is actually inherent to decoupled, event-driven architectures. Pub/Subs and Push data transfers is a way of decoupling pieces of systems and reducing dependencies. Very common in anything where data sources (sensors/microservices/clients) can dynamically enter or leave and you'd like to ensure your system is somewhat robust.
Best practice says to not open a channel each time you are publishing, and keeping connection long-lived. There is a benefit of closing connection and channel on publisher?
Hi Hussein, does rabbitMQ (and MQ in general) use the pub/sub pattern? can the consumer subscribes to the publisher and wait for a message without the need to actively consume them on its own?
That is correct RabbitMQ as I explained in the video uses Pub/sub pattern. Where you have subscribers (consumers) connecting to a queue and a publisher publishing to a queue. As for your second part of your question RabbitMQ uses PUSH model where a consumer connects to a queue and any message published to the queue will be automatically PUSHED to the consumer/subscriber without the subscriber has to request actively it by itself. Kafka also uses pubsub pattern but they use different message delivery approach (not push) they use long polling.. Im making a pubsub video that will be posted in the coming days.. stay tuned and keep these interesting questions coming Have a great weekend 😊
Why wont everyone follow your style of explaining. Most others just feels like reading through documentation and I bet even they dont understand the underlying technology anything more than using it for simple usecases.
Very nice tutorial! This is really helpful to me. Would it be possible also to include header? For example the consumer expects the message to have a valid header authorization sent by the publisher (let's say a JWT token, Authorization: Bearer eyj-some-token)