Learning from your channel is extremely asynchronous. I start somewhere and without finishing that I get extremely nested in all the linked topics! Then I recurse back to the main layer after a day or two :P
Can you speak more clearly, rather swallowing words or like rolling words with you saliva just speak out man. Your content is good but its hard for me to back and forth and understand your words some times.
Thank you Hussein for sharing this info, finding good resources for learning fundamentals is really hard, it's just tools, tools and tools, oh and trends. I'm a musician from Colombia and in the pandemic I decided to learn programming, I didn't see any other viable option for me economically. I really like it know, I'm even planning on doing a minor in Electronic Engineering, I just want to go deeper and deeper. Just bought your networking and backend fundamentals courses, really looking forward to learn from those. REALLY GREAT STUFF. You're an amazing teacher.
Hey Hussein - ardent fan of your content - one suggestion if I may - your style of making voice modulations and jabs is good, but sometimes feels overdone and slightly irritable. If you could cut it out a lil bit, would much appreciate it.
Thanks guys! Appreciate your comments, and very happy you are learning. Are all in a continuous learning process. Suggest any new software topics you would like to see next :)
I gave an interview today where I used chaining of http calls for a postbooking scenario in transactional service. After watching this video I realised I could have done it far far better by pub/sub model. @Hussein, Thanks for making so precise content.
I always only know about Request and Response architecture and it's my first time working on with this pub-sub architecture.. I wonder what other architecture out there that I don't know yet
@@hnasr Thanks. I have recently worked with Kafka and wrote some services for publishing/consuming events. I know about Pub/Sub and watched some videos/read articles about kafka but I have the feeling of knowing things in high level, for which coding is no problem but I wanted to know more about how things work in low levels. Sadly everyone likes to discuss how kafka works but I want to know why its working in a particular way and whats the reason behind that. That's why I watch your videos and they never disappoint me!
I am your subscriber, I wont check every hour "if you uploaded new content", I will check the notification if it came, I will consume your content. Thanks for explaining it nicely :)
Updated video with more content and fixed audio Publish-Subscribe Pattern vs Message Queues vs Request Response (Detailed Discussions with Examples) ruclips.net/video/DXTHb9TqJOs/видео.html
Год назад
"We want software to have social anxiety". That was genius 😁.
I haven't seen the video yet, but by reading that video description I'm more than eager to watch it! I'm coming from Apache Kafka Crash Course, amazing video as well, thank you Hussein, got my like, subscribe and alerts
22:15 Wouldn't sending an acknowledgement over something like TCP (which ensures packets are sent for you) guarantee that at some point the message queue would be able to know that the message was consumed? What kind of research do you mean?
Remember there are two different communication going on. TCP acknowledges segments (did The machine received the segment it sent). While the queue communication is built on top of TCP as an application, so sending a “message” might translate to 10 segments. Those segments might have all delivered at the TCP stack, but the message has to be acknowledged by the application once it is processed (not just delivered). The acknowledgment is just another message that is sent from the other machine and might have 1 or more TCP segments
Thank you again for the great content ...It is possible for you to make a tutorial with a website that use this all concepts so all pieces can come in a place ..please 🙏🙏
In the Pub/Sub model, how does the client know if some problem occurs in the process. Suppose there was a problem compressing the file. The process cannot go any further. But how do we tell the client that the process was not successful?
Hey Hussein love your content! I have a small doubt, the message queue/channel in between is a different server right? So, is single point of failure also possible here as a disadvantage?
Correct if the broker is a single machine than its a SPOF, but most message queue systems use a distributed approach such as Kafka and RabbitMQ. I made a video about those two .
جَزَاكَ ٱللَّٰهُ خَيْرًا Hussein. Really helped me compare CoAP and MQTT protocols. It also helped me notice application of pub-sub architecture in both the CDMA and distributed bus arbitration protocols.
Hi Hussein.... Vids are too good, just a suggestion if you can try Slides in dark mode for your newer videos..... which puts less strain on our eyes and we can binge watch your content :)
the chaining exemple part where it break is just odd; there are so many problems with it, which definitely aren't the chain; because why would the notification service pass through all these layers? that just doesn't make sense, and if some mad-man really designed its architecture like that, it's not the notification logic that is at fault XD
6:30 why couldn’t you just pass metadata along with the requests and build an architecture where the notifications machine passes to the upload machine so that nothing’s actually waiting?
Very good explanation sir, but I still have one doubt, if upload service after doing its job pushes it's content to some DB and all the other services can query from that DB and remain Decoupled right ? Then again why queues
HI! thanks for the content, but i have a doubt. you mentioned that pub-sub mehanism couldn't know whether the message is consumed or not but in kafka we can come to know that, and due to that only we can calculate the lag, am i missing something? pls answer my query
Mostafa Khaki hey Mostafa, I discuss the difference in this video What is a Message Queue and When should you use Messaging Queue Systems Like RabbitMQ and Kafka ruclips.net/video/W4_aGb_MOls/видео.html
Thanks Pratik! I do I love sharing what I know and have the opportunity to learn more from people who comment, correct wrong things i said and suggest other ideas.
So what technique should I use to accomplish this? I'm working on getting a full understanding of node and express REST server. I'm avoiding graphql which I have found a few examples off but till I get REST down first I'd like to avoid using graphql. I was also trying to avoid adding a message broker such as kafka or redis at the moment as I thought it might add a bit of confusion. So I'm left with a thought process of setting up a switch statements and an array of messages(?? would this even work?). I know that's not a great solution though, so I'd think I'd have to store the array in a db anyways. So is redis or others needed for this pub/sub, or can I achieve this using websockets? **If its possible to do without sockets or a message broker but just isn't a great option, is it possible you could explain how that may be done anyways? I like to understand basics before adding any extra.
So does the message queue initiate a TCP connection with a given subscription service only when a particular channel is created? Like when the queue receives the 1080P video, we configure it to inform the Notification service, so it establishes a new TCP connection and sends the video? (Or is it okay to have a TCP connection established with all services from the start, this feels a bit expensive for the message queue though)
Depends. I would imagine a pool of connections will already preheated and established. But that of course needed to be played by ear if the channel is not as busy to free up resources
What happens if the subscriber has a dynamic IP address and their IP has changed after subscribing to a topic? How will the publisher know the new IP so it can notify the subscriber? Is this handled transparently for us?
Good question! When your IP address changes that is an indication that you moved from one tower to another tower in cellular network or your lease has expired ill take the worse case scenario when you move towers. What usually happens here is your existing TCP connections will be dropped and the client is responsible for reconnecting. When the consumer reconnect again with the same id the publisher will recognize the consumer. Consumer id or channel id is important here If you are using a broker with push model (RabbitMQ) then rabbitMQ Will hold your messages for a period of time when you were disconnecting and push all messages when you connect back. If your broker uses long pull or pull model then its up to the consumer to pull whenever its ready. So to answer your questions I believe the client (consumer) will be responsible for reestablishing the connection when it drops..
Depends, whether you mean sync vs async on the client or sync vs async on the backend. lets go back to what sync and async means. It means whether the client making the request is blocked or not. Blocking means synchronous and non blocking means asynchronous, so both REST and pubsub can be sync or async really depends on the client. Now, if you meant the asynchronousy in term of the entire system, then sure PUBSUB is asynchronous while REST is synchronous, back to my youtube example In case of REST. the mobile phone uploads a video and get back the successful result after all services processes the request (upload, compressed etc) So that is synchronous on the backend your services waited until everything was completed. However in case of pubsub mobile phone uploaded the video and once the video was uploaded it got back a result. BUT the video is not fully ready to be consumed so thats asynchronous backend. Tricky stuff hope that make sense.. Here is a video i made talking more about asynchronous backend ruclips.net/video/LMaVIqfb3TQ/видео.html
When you said "why i am referring to a computer as a gender?" I just realized that I am doing it most time 😂 It is linguistic issue bro, you might understood me 🤣
Fundamentals of Backend Engineering backend.win
We need softwares to have social anxiety..!(THEBest explanation for decoupling) LMAO XDXD
You are not a techer. You are an entertainer who makes learning funnier like watching friends.
Learning from your channel is extremely asynchronous. I start somewhere and without finishing that I get extremely nested in all the linked topics! Then I recurse back to the main layer after a day or two :P
It is a complete graph. You can always start something else before u start the first thing ;)
Wouldn’t this be more of a recursive paradigm rather than asynchronous? :)
Hi! just want to tell you:
all your videos are soooooo goooooooooood
RAIN Chai Thanks Rain! Welcome to the channel and enjoy the content! Have a great weekend 😊
Where does request response pattern breaks 3:00
Response request pros & cons 7:00
Pub/sub pattern 11:12
Pub/sub pros/cons 17:50
Can you speak more clearly, rather swallowing words or like rolling words with you saliva just speak out man. Your content is good but its hard for me to back and forth and understand your words some times.
Gary Vee references were a pleasant, hilarious surprise!
Gary vee is awesome 😎
Is it just me or is Heath Ledger as the Joker teaching us Publish-Subscribe Architecture?
Really good, instructive, and entertaining video! 🙏
I have been in the mind of a genius! Thank you for clearing this topic up once and for all!
Your voice in between is that of heath ledger from The dark knight. Good way of teaching :)
Thank you Hussein for sharing this info, finding good resources for learning fundamentals is really hard, it's just tools, tools and tools, oh and trends. I'm a musician from Colombia and in the pandemic I decided to learn programming, I didn't see any other viable option for me economically. I really like it know, I'm even planning on doing a minor in Electronic Engineering, I just want to go deeper and deeper. Just bought your networking and backend fundamentals courses, really looking forward to learn from those. REALLY GREAT STUFF. You're an amazing teacher.
Hey Hussein - ardent fan of your content - one suggestion if I may - your style of making voice modulations and jabs is good, but sometimes feels overdone and slightly irritable. If you could cut it out a lil bit, would much appreciate it.
Thanks
Not only that, it makes following the actual topic much harder after a long session of jib-jab. I’d say the content quality is good, but style not so
Awsome buddy. Your videos have taken me hundred levels up.
same here Hussein thank you
Thanks guys! Appreciate your comments, and very happy you are learning. Are all in a continuous learning process. Suggest any new software topics you would like to see next :)
I gave an interview today where I used chaining of http calls for a postbooking scenario in transactional service. After watching this video I realised I could have done it far far better by pub/sub model. @Hussein, Thanks for making so precise content.
👍👍👍 pretty cool
Thanks you as always! Request: Kafka & how to set up kafka with node.js, database for real time apps like uber
Thank you for these videos, dude. Super helpful. Love how entertaining you make some boring topics.
Glad you like the content and delivery ❤️
I always only know about Request and Response architecture and it's my first time working on with this pub-sub architecture.. I wonder what other architecture out there that I don't know yet
I love your videos so much, because it is pretty funny the way you explain things, it's so rare. Thank you a lot
I was planning to finish the kafka crash course today but redirected from that video to here from the video links. As usual, a great one!
Ahmed Tarek take your time and enjoy the process, it might be a lot but its all Fundamentals 😊
@@hnasr Thanks. I have recently worked with Kafka and wrote some services for publishing/consuming events. I know about Pub/Sub and watched some videos/read articles about kafka but I have the feeling of knowing things in high level, for which coding is no problem but I wanted to know more about how things work in low levels. Sadly everyone likes to discuss how kafka works but I want to know why its working in a particular way and whats the reason behind that. That's why I watch your videos and they never disappoint me!
man what an amazing explanation once again thank you thanks alot
Glad it helped!
Excelent Video Hussein. Thanks!
I am your subscriber, I wont check every hour "if you uploaded new content", I will check the notification if it came, I will consume your content.
Thanks for explaining it nicely :)
Updated video with more content and fixed audio
Publish-Subscribe Pattern vs Message Queues vs Request Response (Detailed Discussions with Examples)
ruclips.net/video/DXTHb9TqJOs/видео.html
"We want software to have social anxiety". That was genius 😁.
I haven't seen the video yet, but by reading that video description I'm more than eager to watch it!
I'm coming from Apache Kafka Crash Course, amazing video as well, thank you Hussein, got my like, subscribe and alerts
nice way to teach i really like your video thanks
Thanks Anujm !! Happy you like the content .. let me know what software engineering content I should make next cheers
I really loved the way you lectured! ☺️
Thank you Naresh!! 🙏 happy you enjoy the lecture
Gold tier explanation! Thank you!!
22:15 Wouldn't sending an acknowledgement over something like TCP (which ensures packets are sent for you) guarantee that at some point the message queue would be able to know that the message was consumed? What kind of research do you mean?
Remember there are two different communication going on. TCP acknowledges segments (did The machine received the segment it sent). While the queue communication is built on top of TCP as an application, so sending a “message” might translate to 10 segments. Those segments might have all delivered at the TCP stack, but the message has to be acknowledged by the application once it is processed (not just delivered). The acknowledgment is just another message that is sent from the other machine and might have 1 or more TCP segments
Thank you so much sir! You make wonderful and really insightful content and it's really well explained ✨
Best part: "in this video," 😂🤣 0:25
14:47 "This guy has to be up all the time... that's what she said" 😂😂😂
You crack me up man, great stuff! I definitely learned something.
We want software to have social anxiety... xD Thanks for that. Never forgetting what decoupling means
Thank you again for the great content ...It is possible for you to make a tutorial with a website that use this all concepts so all pieces can come in a place ..please 🙏🙏
In the Pub/Sub model, how does the client know if some problem occurs in the process. Suppose there was a problem compressing the file. The process cannot go any further. But how do we tell the client that the process was not successful?
Video is quiet good and I am watching at 1.75 speed :-)
sir your explanations are amazing. keep up the good work!
Really awesome!! Liked this and Kafka videos. Going to watch more from you!! Thanks a bunch!!
...that means that this guy has to be up all the time.
* That's what she said. *
Hilarious !!
Thank you for this great video. You have such a great way of explaining and presenting stuff. It's easy to follow and funny as well. Cheers!
Wohh wohh that's the video I was looking for; Thanx sir for publishing quality content
sooooooooooo gooood ur teaching ....... i love it ......really really soo excellent sir .... keep going.....
Very clear and easy to follow; thank you!
Great video, thanks! But I think it'll be better if the side comments weren't there, as they're confusing (at least for me).
Thank you, again.
Kafka please
Are you a dubbing artist too?? Your voice modulation is amazing :P
Aman Jain thanks Aman! In case RUclips doesn’t pan out I know what career I should pursue next
Amazing content my friend. Thank you!
Hey Hussein love your content! I have a small doubt, the message queue/channel in between is a different server right? So, is single point of failure also possible here as a disadvantage?
Correct if the broker is a single machine than its a SPOF, but most message queue systems use a distributed approach such as Kafka and RabbitMQ. I made a video about those two .
Loved your content :) . I appreciate your efforts. Thanks
Appreciate you Waseem
This video is very useful for me. Thank you!
Dziękujemy.
Everything is clear and funny :D
Tim T
Hussein is a legend :)
Best ever I watched.🤓
Sir...Just Loved it. Learned something new. Thanks a lot ! also...love your funny style
Thanks a lot, sir. Can you make a video about designing a notification service with node js?
Great idea 💡! Thanks
You are amazing bro 😆
engaging and well explained...thanks....
This man has like 9 personalities in this video
جَزَاكَ ٱللَّٰهُ خَيْرًا Hussein.
Really helped me compare CoAP and MQTT protocols. It also helped me notice application of pub-sub architecture in both the CDMA and distributed bus arbitration protocols.
Thanks!
Hi Hussein.... Vids are too good, just a suggestion if you can try Slides in dark mode for your newer videos..... which puts less strain on our eyes and we can binge watch your content :)
Thanks for the suggestion! Lots of people requested that too so new video slides are all dark themed 👍
the chaining exemple part where it break is just odd; there are so many problems with it, which definitely aren't the chain; because why would the notification service pass through all these layers? that just doesn't make sense, and if some mad-man really designed its architecture like that, it's not the notification logic that is at fault XD
GREAT video! thanks!
Thanks for the video, nice energy!
Malik Aghiles Tahir thanks Malik!!
6:30 why couldn’t you just pass metadata along with the requests and build an architecture where the notifications machine passes to the upload machine so that nothing’s actually waiting?
Great video. Thanks and do kafka video please.
amflearning by doing guys
How come some of the videos are restricted access?
This video is understood even for not developers. Great explanation!!
Very good explanation sir, but I still have one doubt, if upload service after doing its job pushes it's content to some DB and all the other services can query from that DB and remain Decoupled right ? Then again why queues
More Cali Hussein, please. Thank you.
CJ 😂😂
Publish-Subscribe Architecture (Explained by Jim Carrey)
HI! thanks for the content, but i have a doubt. you mentioned that pub-sub mehanism couldn't know whether the message is consumed or not but in kafka we can come to know that, and due to that only we can calculate the lag, am i missing something? pls answer my query
Hi Hussein
thanks for cool videos
please can you talk more about Message Queue VS Pub/Sub System?
Mostafa Khaki hey Mostafa, I discuss the difference in this video What is a Message Queue and When should you use Messaging Queue Systems Like RabbitMQ and Kafka ruclips.net/video/W4_aGb_MOls/видео.html
how should we model a datanase of follow following??And does cassandra does the job?
Great Video.. u take pride in teaching, it seems :)
Thanks Pratik! I do I love sharing what I know and have the opportunity to learn more from people who comment, correct wrong things i said and suggest other ideas.
Interested in kaftka media server using pub/sub! Nice
Hi Nasser , thanks for your video , can you please share a demo how can I test pub/sub hosted in cloud using java as the programming language
bro the commentary is hilarious, keep it up
kafka. Thanks!
So what technique should I use to accomplish this? I'm working on getting a full understanding of node and express REST server. I'm avoiding graphql which I have found a few examples off but till I get REST down first I'd like to avoid using graphql. I was also trying to avoid adding a message broker such as kafka or redis at the moment as I thought it might add a bit of confusion. So I'm left with a thought process of setting up a switch statements and an array of messages(?? would this even work?). I know that's not a great solution though, so I'd think I'd have to store the array in a db anyways. So is redis or others needed for this pub/sub, or can I achieve this using websockets? **If its possible to do without sockets or a message broker but just isn't a great option, is it possible you could explain how that may be done anyways? I like to understand basics before adding any extra.
So does the message queue initiate a TCP connection with a given subscription service only when a particular channel is created? Like when the queue receives the 1080P video, we configure it to inform the Notification service, so it establishes a new TCP connection and sends the video?
(Or is it okay to have a TCP connection established with all services from the start, this feels a bit expensive for the message queue though)
Depends. I would imagine a pool of connections will already preheated and established. But that of course needed to be played by ear if the channel is not as busy to free up resources
@@hnasr ah okay! Btw Loving your backend engineering playlist,so much to learn and think about! Thanks!
+ 1 on wanting software to have social anxiety! hah
Ammmmmmazing video!
Thank you so much man
Thank u so much
6:45 😂😂
im rofl at the whole video
so funny Hussein :-))
❤️
Rest is better overall. I'm biased
What happens if the subscriber has a dynamic IP address and their IP has changed after subscribing to a topic? How will the publisher know the new IP so it can notify the subscriber? Is this handled transparently for us?
Good question! When your IP address changes that is an indication that you moved from one tower to another tower in cellular network or your lease has expired ill take the worse case scenario when you move towers. What usually happens here is your existing TCP connections will be dropped and the client is responsible for reconnecting. When the consumer reconnect again with the same id the publisher will recognize the consumer. Consumer id or channel id is important here
If you are using a broker with push model (RabbitMQ) then rabbitMQ Will hold your messages for a period of time when you were disconnecting and push all messages when you connect back. If your broker uses long pull or pull model then its up to the consumer to pull whenever its ready.
So to answer your questions I believe the client (consumer) will be responsible for reestablishing the connection when it drops..
@@hnasr Great detailed explanation! Thank you for the informative content :))
Is it correct to say that REST is synchronous communication, while PUB/SUB is asynchronous?
Depends, whether you mean sync vs async on the client or sync vs async on the backend.
lets go back to what sync and async means. It means whether the client making the request is blocked or not. Blocking means synchronous and non blocking means asynchronous, so both REST and pubsub can be sync or async really depends on the client.
Now, if you meant the asynchronousy in term of the entire system, then sure PUBSUB is asynchronous while REST is synchronous, back to my youtube example
In case of REST. the mobile phone uploads a video and get back the successful result after all services processes the request (upload, compressed etc) So that is synchronous on the backend your services waited until everything was completed.
However in case of pubsub mobile phone uploaded the video and once the video was uploaded it got back a result. BUT the video is not fully ready to be consumed so thats asynchronous backend.
Tricky stuff hope that make sense..
Here is a video i made talking more about asynchronous backend ruclips.net/video/LMaVIqfb3TQ/видео.html
When you said "why i am referring to a computer as a gender?" I just realized that I am doing it most time 😂 It is linguistic issue bro, you might understood me 🤣
"Ok I don't know" 🤣 Oh my, what a humor sense do you have man 😂. Thanks for the astonishing software engineering content you make.
Masaad B I think its because of Arabic language we don’t have an “it” everything is she or he so My English suffer as a result lol
Thanks Masaad!
11:06 thought you were having a seizure or something hahahahah
Have you ever used or know Stoq automation framework?
thx
Thanks
14:49 👀 You Naughty Naughty
You should maybe make a video about active mq :D
Yes I should!