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!
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.
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 .
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)
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!
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
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!
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...👍
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?
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!
Can you do a video on Nats streaming, it can handle more messages than rabbitmq but does not hold messages in database. I am currently building a microservice app and I am using Nats but I am tempted to use rabbitmq and the only thing that make them difference is the ability to persist messages (if I am not wrong in regards to RabbitMQ) and also in Nats you can have multiple consumers listening to same queue (not sure with rabbit mq) and only one of them can process that message. This is very good when you have multiple replicas of server or multiple instance of servers and one of them can process the message. The down side to this is that, if the system is down (Nats streaming) then all messages are gone) other than that it can handle so you have to find a way to hold the un acked messages and push them from your db to nats to other services where it's appropriate. what's your input on this ? a video comparison on the two and their limitation would be a great idea brother Hussein.
I have a doubt regarding RabbitMQ installation. Either we can directly install RabbitMQ software manually or we can install it via docker. Which method we should use?
Hi Hussein. thanks for the very good video. However I don't understand where task Queues like Celery fit into this. Can you explain why we need Celery + rabbitmq?
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)
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 😊
how does rabbitmq acknowledge which consumer has received the message, does it maintain state for that? if 3 out of 10 consumers have not received it, does it remember that they have not received and maintains a state for that?
TOC - RabbitMQ Components 2:00
Spin up docker RabbitMQ container 8:30
Write a Publisher client NodeJs 11:00
Write a consumer client NodeJs 20:30
My thoughts on RabbitMQ 33:50
People comment not liking Hussein's voiceover or talking style, but in my personal opinion, it keeps me awake so it's a good thing
I speed up the play by x1.75, his tone gone.. so I can concentrate on what he is saying
Cant agree more
Yeah, just stopped and tried to find another video just because of this "talking style"( It's a shame, the content is good
I prefer this style compared to the others.
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.
Rafi Ramadhana thanks Rafi! Appreciate the feedback 😊
I'm only halfway through and this is already the most valuable RabbitMq tutorial I've seen thus far.
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!
You're hilarious dude, and thanks for making my life a little easier!
I like that you explain it slow and with passion, not like the most of youtube videos "RabbitMQ in 5 seconds"...
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
Man, I just love the way how you explain things. Your RUclips channel is a gem!
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!
It's late to write "Kafka", but it was great, and thank you for this great video.
Please keep updating :)
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.
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 .
God Bless You Brother. You teach very nice. Please be blessed and blessing for others. Love you brother😇
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)
Thank you so much for this video!! I'm preparing for an interview tomorrow and this was so helpful! Now I'm going to search for the kafka video 😄
Thank you so much, Hussein.
I like your speaking style. It made me active on this tutorial until the end.
Thanks Victor
I learned rabbitmq with this video. I loved the passion this man inspires on each video
Genuinely best rmq tutorial on youtube
Very nice to see an example using async and await.
Very nice discussion I was looking for a long time I am very glad to find one like this and I see all of it
very interesting videos, hilarious teaching style, feel like watching a good movie. 0% boring
This course is amazing... I'll CONSUUUUUUUUUME it.
GREAT enthusiastic explanations !!! Plz do Kafka. Also video on pros and cons of different queuing systems and when to use which.
superb men, now I can teach my old fashioned office guys this tech. HAHAHA.. I am gonna rockkkkkk... Thanks..
Every minute of explanation is just making me speechless. Lots of love for you!!!
Wow, thank you!
@@hnasr you are more than welcome
You explaining things in an awesome manner! Love it!
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!
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
Good, simple, straightforward explanation with easily replicable example. Thank you.
Juan Carlos González thanks Juan Carlos! Appreciate it 🙏
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!
Francisco Carneiro thanks Francisco!! Will check out the TICK stack. First time I hear about 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
God... Watched 10 videos continuously...best channel for backend Guyz...Keep posting..:)
Thank you so much 😀 enjoy!
2 minutes into the video and I already love your style!
Your presenting style is awesome.
Appreciate you Kiran. Thanks 🙏
I tried to implement rabbitMQ for fast Performance Endpoint, I didn't find enough information to my errors, apache kafka worked much better...
Found your channel today and subscribed. Much love! I really like your style and am looking forward to watching your other videos.
Thanks Lee appreciate your message! Enjoy the content and let me know what should I talk about next
You are a great teacher and you make me laugh
Dude you are super listenable..... thanks for this.
Very nicely explained. I love your videos.
Atif Ali thanks Atif!
Its very hard to find good rabbitmq crash courses. Thanks for making the video Hussein,
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.
thanks for the video I will take a look at kafka before I start learning either of the 2.
My concepts went from 0 to 100. Thanks man
Hey Hussein. Your explanation is very nice and also your text readability is just perfect on screen. Thank you for sharing. Great job!
It was such a great video, Hussein.
Please make more videos on backend stuff.
past two weeks onwards watching your awesome videos the phrase "let's jump into guys" was always running in mind Hussein
You're have awesome energy, Man. Great Content!
Hussein, you have real, real goddamn value in your videos. I am so thankful for the knowledge you're imparting !
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...👍
This just helped me understand the architecture of a codebase I’m to work on. Thanks a lot! Awesome content
Your style of explaining and content is dope💗..I will get sleep if pitch and tone is consistent for long time..ur videos at 2x is perfect for me..
This is the best video about rabbitmq that I have seen so far, you know how to explain it well! Thank you, I subscribe
Thanks mate, your effort and style are great
Thank you very much for the video!!!
Please make a video on how you study, just how mahn awesome ❤
thanks Hussein you're doing great
Excellent video! I really enjoy your enthusiasm for the topc.
scubadawg91 🙏 I appreciate that thanks 😊
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?
Thank you for this great content. Looking forward for the Kafka one. 👍
Amazing video. Learnt a lot.
You remind me a lot of Michael Scott from 'The Office'
Thanks Hussein! you are a awesome ! and simlpe clear!
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!
Hey! you are great .. very nice explanation. this helped me to learn rabbitmq work flow. Thanks
I am happy I could help! Thanks for your message 😊
Great video, fantastic example.
Great video Hussein, thank you!
This course is amazing... Thank you so much!!!!!
Great video. Very entertaining.
Thanks Matt!
Great work Hussein! That was really helpful.
Glad I could help 😍
What an explanation! Nice :)
Crazy dude ;))) thx for happy moment
what a energy, cool
Good video. Did feel like Elmo was talking to me though.
Excellent explanation !!
from morocco, good video
mohammed el aissati عاشت ايامك تحياتي لجميع المتابعين من المغرب الحبيبه
Can you do a video on Nats streaming, it can handle more messages than rabbitmq but does not hold messages in database. I am currently building a microservice app and I am using Nats but I am tempted to use rabbitmq and the only thing that make them difference is the ability to persist messages (if I am not wrong in regards to RabbitMQ) and also in Nats you can have multiple consumers listening to same queue (not sure with rabbit mq) and only one of them can process that message.
This is very good when you have multiple replicas of server or multiple instance of servers and one of them can process the message.
The down side to this is that, if the system is down (Nats streaming) then all messages are gone) other than that it can handle
so you have to find a way to hold the un acked messages and push them from your db to nats to other services where it's appropriate.
what's your input on this ?
a video comparison on the two and their limitation would be a great idea brother Hussein.
I have a doubt regarding RabbitMQ installation. Either we can directly install RabbitMQ software manually or we can install it via docker.
Which method we should use?
I'd like to see you do a video on zeromq. It seems less complex to me.
Good idea! Added to the list. Thanks Steve
can you tell why QoS in MQTT is considered a feature of MQTT where http over TCP is checking for delivery as well?
Hi Hussein. thanks for the very good video. However I don't understand where task Queues like Celery fit into this. Can you explain why we need Celery + rabbitmq?
was looking for rabbitmq for long time. thanks :)
Enjoy the course! 😊
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)
When I hover over message, it doesn't show anything. How do you trigger opening that window in VSC?
What a great video, great channel and great guy called Hussein!!!)) Thank you sooooooo much for your work and videos, keep up the good!
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 😊
Thanks so much for this video tutorial.
it helped me a lot !! thank you :)
Yes, I do want a kaffka tutorial, please do it :p, thank you so much ........
Great stuff Hussein! Any plans on doing a Redis Streams episode?
Those abstractions are not unneeded they give you more flexibility.
how does rabbitmq acknowledge which consumer has received the message, does it maintain state for that?
if 3 out of 10 consumers have not received it, does it remember that they have not received and maintains a state for that?
how do you have completions in vscode before installing the library?
Outstanding, love the high quality videos!
Joshua Gainey Thanks Josh! Enjoy the content 🙏
Loved the final thought on crazy abstractions. An engineering solution should extract complexity not make it worse.
Awesome video!
More than awesome!!!!!!!
Failed to establish message queue error...Any suggestions how to resolve.
the energy awwsome!
Came here to understand rabbitmq and its exchanges
7:39 Hussein: "you don't have to know about this, we're not gonna talk about exchanges"
Aleg Malinovsky 😅 sorry I do need to make another video about exchanges.
I wish I have instructor like you
i just read this term this week and you made a video about it lol
yes! new thing to learn thats what makes good software engineer! Enjoy