Want to learn more about these concepts and how to build production-grade Node.js Microservices? Check out my highly-rated course with this discount code: michaelguay.dev/udemy/
I decided to take the time this month to really try and understand JS and its various runtimes like nodejs, and how it works. Then, this video comes up. Literally perfect timing. Thank you. Excellent teaching as always.
A new fan is coming right away, please make more videos on scaling and building production level code logics and optimisation, cause no one is doing that except Copy Pasting 🎉❤ Request: please make a video on how to setup typescript for production react app.
Great video, really helped to understand core concepts of js and async code in js, thanks! wanted to mention that better to use Promise.allSettled instead of Promise.all allSettled handles a little differently (returns status and value) but doesnt stop if rejected promises occur
Excellent tutorial Michael , been following your channel for a while now . thought i'd throw in a couple of nuggets . I know for one that pm2 can be used to scale NodeJs processes , although K8s is a production grade solution it also requires quite a bit of an overhead , could we get alternatives ? I've also hear interesting stuff about Worker threads , maybe you could help us unpack that . Keep up the good work !
14:55 is there other way to write a non-blocking code? Rather than returning new Promise(), could I return just a function which contains a setTimeout inside?
Only for very specific tasks: DNS lookup, file-system I/O, Crypto & ZLIB The actual network I/O is completely async and handled by the kernel. Node (the event loop) simply moves onto other tasks while it awaits the response from the kernel stackoverflow.com/questions/51653440/does-node-js-use-libuv-thread-pool-for-network-i-o
Awesome content as always, One question though, if I have a limited knowledge on dockers and k8s, is it a good approach to go with node clusters instead??
Promise.all is concurrent, meaning they start executing in parallel, but, JavaScript being single-threaded, only one line of code is executed at a time (code inside callbacks)
Node.js is designed for concurrent, not parallel, execution of operations, with a focus on non-blocking, event-driven tasks primarily suited for I/O-bound workloads
Yea, and I think it's important to distinguish between the 2 terms for new developers that are learning instead of just deciding to use the term parallel when in fact all code execution is concurrent unless utilizing worker threads. The I/O network events can happen in parallel, but the actual code execution will always be concurrent.
Thank you Michael, And thank you for amazing Udemy micro-services neste course. It makes really big difference at my career 👍. Hope if there is more about could (Kubernetes, helm ) and how to manage clusters.
Hi Michael thank for the nice video can you make a course for nestjs graphql microservice i mean even a paid course is fine i really want to know more about that
Want to learn more about these concepts and how to build production-grade Node.js Microservices? Check out my highly-rated course with this discount code: michaelguay.dev/udemy/
I decided to take the time this month to really try and understand JS and its various runtimes like nodejs, and how it works. Then, this video comes up. Literally perfect timing. Thank you. Excellent teaching as always.
Insane, make more courses, yours explanations are soo good
For sure, stay tuned. Thank you!
15:32 and C#. Even with async await syntax utilizses multiple threads. Thank you for the video.
A new fan is coming right away, please make more videos on scaling and building production level code logics and optimisation, cause no one is doing that except Copy Pasting 🎉❤
Request: please make a video on how to setup typescript for production react app.
My note: @13:00 how promise does not block it. (it is async sleep rather than being blocked)
Great video, really helped to understand core concepts of js and async code in js, thanks!
wanted to mention that better to use Promise.allSettled instead of Promise.all
allSettled handles a little differently (returns status and value) but doesnt stop if rejected promises occur
Thank you!!
Very informative lecture and looking for further concepts.
Thanks Michael! Your content is amazing, i've learned a lot from you!
your content is a gem, thank you
Thanks for these useful videos. I love your tuts
Excellent tutorial Michael , been following your channel for a while now . thought i'd throw in a couple of nuggets .
I know for one that pm2 can be used to scale NodeJs processes , although K8s is a production grade solution it also requires quite a bit of an overhead , could we get alternatives ?
I've also hear interesting stuff about Worker threads , maybe you could help us unpack that .
Keep up the good work !
I love the idea of a future video with PM2 and Worker Threads! Stay tuned.
keep it up! you are doing a great JOB!!!
This is gold, thanks a lot.
Can we achieve multi threading by using a message broker/queue system instead of workers ?
Still one thread, but we can scale horizontally by distributing the work to several applications - so it is very similar.
Very helpful, Thanks!
14:55 is there other way to write a non-blocking code? Rather than returning new Promise(), could I return just a function which contains a setTimeout inside?
Thank you for this masterpiece
Thanks for your amazing work !!👌🙂
Many thanks
Wait. When we have I/O-bound tasks, aren't they passed to a thread pool and then executed on a separate thread by the kernel?
Only for very specific tasks: DNS lookup, file-system I/O, Crypto & ZLIB
The actual network I/O is completely async and handled by the kernel. Node (the event loop) simply moves onto other tasks while it awaits the response from the kernel
stackoverflow.com/questions/51653440/does-node-js-use-libuv-thread-pool-for-network-i-o
Awesome content as always, One question though, if I have a limited knowledge on dockers and k8s, is it a good approach to go with node clusters instead??
Amazing Thanks!
This content is so fresh and different that the cookie cutter dev content being produced out there! keep it coming Micheal
Hi @mguay, i wonder in this what theme are you using in vs code?
Impressive
Promise.all is concurrent, meaning they start executing in parallel, but, JavaScript being single-threaded, only one line of code is executed at a time (code inside callbacks)
Node.js is designed for concurrent, not parallel, execution of operations, with a focus on non-blocking, event-driven tasks primarily suited for I/O-bound workloads
now its capable of parallel excecution through worker nodes @@ofuochi
Yea, and I think it's important to distinguish between the 2 terms for new developers that are learning instead of just deciding to use the term parallel when in fact all code execution is concurrent unless utilizing worker threads. The I/O network events can happen in parallel, but the actual code execution will always be concurrent.
Brilliant
Thank you Michael, And thank you for amazing Udemy micro-services neste course. It makes really big difference at my career 👍. Hope if there is more about could (Kubernetes, helm ) and how to manage clusters.
For sure, stay tuned. Thank you!
really nice.
Nice explanation
Yes exactly, check out my video on Horizontal Pod Autoscaling to have this happen automatically based on CPU & Memory usage metrics!
Hi Michael thank for the nice video can you make a course for nestjs graphql microservice i mean even a paid course is fine i really want to know more about that
Yes stay tuned for my next course :)
I am using Nuxt atm
Why can't we use pm2 for cluster mode?
Stay tuned for a video on it!
Why does the function non blocking need to be asynchronous? You are returning a promise and not awaiting for anything
It doesn’t need to be since we’re already returning a Promise like you said
"Promo SM"
Thank you so much!