Build Nest.js Microservices With RabbitMQ, MongoDB & Docker | Tutorial

  Рет қаралды 123,971

Michael Guay

Michael Guay

Күн бұрын

Пікірлер: 205
@jafar1607
@jafar1607 2 жыл бұрын
Wow. This dude is just giving away thousands of dollars worth education for free. Salute to you sir. You are helping many. I wish all the success in your career.
@renends7615
@renends7615 2 жыл бұрын
This content is unique, it helps us understand, something very complicated into something simple. Great tutorial!
@ArturDani
@ArturDani 2 жыл бұрын
Wow, this was the missing piece for me to start using microservices pattern. The puzzle is almost completed (just waiting for deployment part) :) Thank you, Sir.
@andyslack1167
@andyslack1167 Жыл бұрын
Really helped me get up and running quickly with NestJS Microservices and RabbitMQ, thank you! Grab beer or two on me!
@mguay
@mguay Жыл бұрын
Thank you so much!
@chinmayanand896
@chinmayanand896 Жыл бұрын
I am watching you videos and this video specifically it is really great to have such content. Because there is almost no one on the internet who is helping with Microservices with NestJS. Thank you for the content from all of us. I am sure many people will take help from this video.
@romaghorjomeladze439
@romaghorjomeladze439 7 күн бұрын
The best course about NestJS Microservices
@ezequielgnich
@ezequielgnich 5 ай бұрын
Hello Michael, I would like to thank you very much for this content, it is very rich in detail and helped me a lot to understand a little more about microservices and also monorepo with NestJS. You've gained another subscriber. Congratulations on a job well done.
@pramodkharade5373
@pramodkharade5373 2 жыл бұрын
It was an excellent explanation. Ton of things, we can learn. Just waiting for deployment part
@defrankline
@defrankline 2 жыл бұрын
This tutorial makes microservice implementation looks so simple. Thanks coder!
@MrOrrGoren
@MrOrrGoren 2 жыл бұрын
Thank you so much for the great tutorial! Just a heads up for anyone using Macbook M1 with the ARM64 chip, Bitnami doesn't support it yet.
@felipechavesdeoliveira4785
@felipechavesdeoliveira4785 Жыл бұрын
Yeah ;(
@Vahidk2222
@Vahidk2222 6 ай бұрын
Thanks man, it's really comprehensive. I learnt a lot from it
@codesuit
@codesuit 2 жыл бұрын
Awesome! Thanks for the great content, waiting for the deployment part!! ♥ Thx Bro.
@a.nk.r7209
@a.nk.r7209 2 жыл бұрын
Awesome quality content. No BS.
@lukaspabijonavicius6890
@lukaspabijonavicius6890 Жыл бұрын
You are very good at teaching. Keep it up.
@virajbaswana
@virajbaswana Жыл бұрын
Such an amazing video. Really helped me learn and build my own custom project. Much Thanks. Looking forward for more nestjs content
@sarunmrzn
@sarunmrzn 2 жыл бұрын
Every one of your video helps me so much, thanks for doing this!
@zlatkoiliev8927
@zlatkoiliev8927 Жыл бұрын
I got issues with MongooseModule, it says it can’t connect to mongodb-primary 😢
@lexNwimue
@lexNwimue 2 ай бұрын
This is awesome, man. Has been very helpful to me
@oigiangbekelvin133
@oigiangbekelvin133 2 жыл бұрын
You're the best. waiting for the deployment part
@nishanthakumara8472
@nishanthakumara8472 2 жыл бұрын
exactly 👍
@brynjarsmaribragason780
@brynjarsmaribragason780 2 жыл бұрын
Awesome! Looking foward to the deployment video!
@lik1142
@lik1142 Жыл бұрын
Thanks so much for the tutorial and the source code, it is much help to understand the concept
@mguay
@mguay Жыл бұрын
Thank you for your support!
@g-luu
@g-luu 2 жыл бұрын
Best nestjs channel out there.
@Dhirajkumar-ux5ug
@Dhirajkumar-ux5ug Жыл бұрын
Nice video and great content , Can you make a enterprise level application using NestJS with micro-service architecture in which you cover e2e testing , caching, queue management system etc. which required to make production level application using micro-services architecture.
@АлександрЕлагин-м2ю
@АлександрЕлагин-м2ю 2 жыл бұрын
Very cool 👍 graphql federation with microservices maybe in future ?
@sealuke2724
@sealuke2724 2 жыл бұрын
your tutorial is pretty awesome, very well structured
@ms0615122
@ms0615122 2 жыл бұрын
Thank you very much! Viewer from Taiwan.
@TheThornTech
@TheThornTech 2 жыл бұрын
The course that i waiting for, Thank you so much sir!
@LelekCZE
@LelekCZE 2 жыл бұрын
Hey Michael, thanks for the tutorial, super educative! Do you plan to do a tutorial for authorization in NestJS?
@mguay
@mguay 2 жыл бұрын
Thanks! I have a video on this, check out my channel.
@mohammadrendra2062
@mohammadrendra2062 Жыл бұрын
For those who's having these problems: 1. Python not found when running docker-compose (and you tried npm config set yet failed, nogde-gyp configure yet failed): Try replacing bcrypt with bcryptjs 2. Error when connecting to database (if you're using Apple Silicon): Try changing the mongo image to: mongo:4.4.14. And if that doesn't work, try add these envs: - to your secondary and arbiter services on your docker-compose.yml: MONGODB_INITIAL_PRIMARY_ROOT_USERNAME=root - to your mongodb-primary: MONGO_INITDB_ROOT_USERNAME=root replace the MONGODB_ROOT_PASSWORD=password123 with MONGO_INITDB_ROOT_PASSWORD=password123 Hope this helps
@tomasgonzalez7474
@tomasgonzalez7474 Жыл бұрын
Thank you!
@olajumokeboladale-lawal8688
@olajumokeboladale-lawal8688 3 ай бұрын
Thank you!
@mohammedlotfy
@mohammedlotfy Жыл бұрын
Nice video Michael but I suggest to use any diagram for more simplification before starting that will make it very easy and will get new ideas from comments sure
@PrashilLonakar
@PrashilLonakar 4 ай бұрын
Really Appreciated , thanks for this great tuts. helps a lot.
@codinghubfree
@codinghubfree 8 ай бұрын
The way you explained is really awesome and helpfull. I have some confusions : Why do we need to create two JwtAuthGuard and how you are deciding where to use JwtAuthGuard and flow of its execution?
@nitishagrahari9943
@nitishagrahari9943 Жыл бұрын
excellent tutorial ... great content in such a short time
@cumuluscycles
@cumuluscycles 2 ай бұрын
Excellent tutorial! This works out-of-the-box from your Repo on a Mac with an Intel Processor, as expected, but I've been trying to update the Images for the Apple M1 ARM64 Arch. Have you tried this as well and, if so, would you mind sharing updated docker-compose / Dockerfile(s)?
@anuragannu8930
@anuragannu8930 Жыл бұрын
damn, I learn so many things in one video, thanks, bro.
@hugotown.entertainment
@hugotown.entertainment Жыл бұрын
This content is amazing, Thank you very much, is the best content ever!
@VeeWebCode
@VeeWebCode 9 ай бұрын
litterlay a gold mine . nothing else to say 😘😘
@christian11x3
@christian11x3 2 жыл бұрын
+1000 loved your content and looking forward for your next video. Thank you and best of luck
@nsfmatios
@nsfmatios 2 жыл бұрын
Awesome content! Really well explained and it's insane how every time I watch some NestJS content I learn a new way of doing the same thing. This bad boy is actually quite flexible for a framework. Do you plan on doing a video where you e2e test an application? One of your videos on unit testing really helped me on work 🙏🏽
@mguay
@mguay 2 жыл бұрын
Thank you! I have a video on E2E testing here: kzbin.info/www/bejne/iGPRlYyVf82rjc0
@mulahem
@mulahem 11 ай бұрын
hey, you have dropped this ... 👑
@shahzaibahmed4090
@shahzaibahmed4090 Жыл бұрын
Very helpful tutorial. Thank you so much.
@asadanik5987
@asadanik5987 Ай бұрын
If we use one api-gateway app here and RabbitMQ will connect with others microservices via api-gateway only then how it will be? is that will be good ?
@postfell
@postfell 2 жыл бұрын
Minute 5:46, I am loving this tutorial, thanks!
@evil-cheetah
@evil-cheetah 2 жыл бұрын
You are amazing! Thank you very much for such great content!
@zackinfos5933
@zackinfos5933 9 ай бұрын
Thank you sir for everything you're doing for us, but could you please tell me why you have followed the one shared db approach for all microservices you have implemented? The one db per each microservice could be more suitable for microservices architecture.
@nestieyt
@nestieyt Жыл бұрын
Hot reload not working on docker-compose with the NestJS 10. I couldn't fix it. Can you help me?
@salaheddineboutayeb3649
@salaheddineboutayeb3649 9 ай бұрын
yes me too still facing same issue😢
@codeguy7309
@codeguy7309 2 жыл бұрын
absolute gold, thank you man
@kirakira160
@kirakira160 2 жыл бұрын
OMG!! Our Best Teacher Are Back🥰
@mguay
@mguay 2 жыл бұрын
Appreciate the support!
@tonskreee6213
@tonskreee6213 2 жыл бұрын
Hi Michael, May I know why both on Auth and Billing service you define the app.connectMicroservice functionality but in Order service you didn't define the connectMicroservice instead you call the RmqModule.register which calls the ClientsModule.register, is there a rule for this one? because I thought when we want to define our service as microservice we need to call the connectMicroservice for each services? sorry im new to microservice and nestJS.
@oyinlolaolasunkanmi
@oyinlolaolasunkanmi 2 жыл бұрын
the order service serves as the entry point into the application. Therefore you need to instantiate Rabbit MQ from there.
@leducanh2225
@leducanh2225 Жыл бұрын
Thank you for sharing awesome source code.
@misbauddinchowdhury2180
@misbauddinchowdhury2180 Жыл бұрын
Why I can't connect mongodb replicaset in my Macbook M1. Error throwing like this [Nest] 69 - 10/24/2023, 10:35:24 AM ERROR [MongooseModule] Unable to connect to the database. Retrying (1)...
@DakshanshGorasia
@DakshanshGorasia 11 ай бұрын
Thanks for the awesome video Michael. I was wondering how it is possible to connect to 2 databases from one of the microservice and second microservice connects to only second database and both are responsible for read/write operations in that database. I know there can be microservice communication used but if we wan to avoid the delay.
@totemsports1267
@totemsports1267 2 жыл бұрын
Hi Michael, this is really nice, keep it up and thank you. I was wondering instead of building authentication service from scratch is it possible to integrate keycloak in your setup as well as api gateways like apisix? If you can create a video that incorporates the two, that would be great. Otherwise thank you for such wonderful and educative videos.
@patrykkowalski1305
@patrykkowalski1305 2 жыл бұрын
Hello, two questions: Why billing service doesn't have a port defined? Shouldn't we have a separate database for each service?
@menottitrades
@menottitrades 2 жыл бұрын
I wonder the same
@theaungmyatmoe
@theaungmyatmoe Жыл бұрын
you don't need to define port in billing app because the app is not listen on the http or tcp. It''s listening to the Rmq
@devorer77
@devorer77 Жыл бұрын
Thank you! Really useful tutorial.
@murat.terzioglu
@murat.terzioglu Жыл бұрын
Wonderful video mate! Helped a lot to understand the system and I would like to give a feedback. Can you make commits as you make progress? For example we have "docker", "microservices" and "billing app" chapters on youtube, wouldn't be good if you make commits for each youtube chapter?
@marc-andrequintal570
@marc-andrequintal570 Жыл бұрын
Really nice, were you able to connect into mongo atlas? I can't and it would be great to see data into database
@cosmic12333
@cosmic12333 6 ай бұрын
thanks so much for this video, i love it
@sigitkuncoro43
@sigitkuncoro43 2 жыл бұрын
really good tutorial, thank you for creating this video bay the way, sometimes when creating an app we also need the second auth for admin, regarding with auth guard, what is the best practice you advise for this case?
@jellehuibregtse9476
@jellehuibregtse9476 2 жыл бұрын
Maybe add an episode on testing the application?
@LamLe-cl4he
@LamLe-cl4he 2 жыл бұрын
Many thanks, great tutorial!
@girish_rajpoot
@girish_rajpoot 6 ай бұрын
I got issues with MongooseModule, it says it can’t connect to mongodb-primary. Please resolve. @Michael
@AntonGorbachevDev
@AntonGorbachevDev 2 жыл бұрын
Thx for great content, i learn alot from this video!)
@sportly-vlog
@sportly-vlog 2 жыл бұрын
@Michael, thank you for the great tutorial. I have a quick question regarding deployment. You see... the Billing service doesn't listen to any port. With this setup, how do I go about health-checking the service container within AWS ECS? The easiest option that I came to my mind is making it hybrid app just like the Auth service to be able to make a HTTP call to the container via the port. What else option do I have?
@azubikeenu7104
@azubikeenu7104 Жыл бұрын
live reload isn't working on docker windows WSL. I don't know if anyone has a fix ?
@zubairjamil1632
@zubairjamil1632 Жыл бұрын
same issue
@truongkhanguyen6241
@truongkhanguyen6241 Жыл бұрын
same issue. i have search around but still can not solve
@kimmdev
@kimmdev 2 жыл бұрын
Thanks! Tutorial straight to the point. In my case I came across the problem, have you dealt with this error? "There is no matching message handler defined in the remote service."
@rayantsolefack7068
@rayantsolefack7068 2 жыл бұрын
Hey guys please i have an error. I followed all the steps till 28:02 but i got : | [Nest] 44 - 07/21/2022, 1:41:51 PM ERROR [MongooseModule] Unable to connect to the database. Retrying (1)...
@ezebc182
@ezebc182 2 жыл бұрын
Same here! Does anybody solved it?
@mguay
@mguay 2 жыл бұрын
Do you see Mongo start up properly?
@ezebc182
@ezebc182 2 жыл бұрын
@@mguay first of all, THANKS for this amazing tutorial.! I think the issue is about that the image with replicas set that you use here, is not compatible with Mac M1 still..
@centralperk6291
@centralperk6291 2 жыл бұрын
try to change the mongodb version, it should work fine...
@rufatgulabli698
@rufatgulabli698 2 жыл бұрын
This works: MONGO_URI=mongodb://root:password123@localhost:27017/?authMechanism=DEFAULT&directConnection=true
@kusaasira
@kusaasira Жыл бұрын
Great content. Michael Guay, on the auth service, why is it that instead of validation I do get always a 401 Unauthorized? Is there a way of working around this?
@brucearmstrong5536
@brucearmstrong5536 Жыл бұрын
Awesome Stuff, I realized that sevices connect to same db, and u have userModule a sub module for parent Auth As Auth is dependent on user and Splitting it into 2 micro services get this tutorial complex Question: is it Good to connect API with mongoDB directly through mongoose for same user collection "mongoose.forfeature({ schema: user, name : user })" instead of, exporting userservice , repository or userSchema and importing the user module in auth module ? Is this a good practice ? adding "mongoose.forfeature({ schema: user, name : user })" for 2 different modules that dependent on same collection I can see some benifits like easier to switch between monolithic / microservices more cleaner and not to much nested file structure Not expert at nest or mongodb
@antnzr656
@antnzr656 2 жыл бұрын
Great tutorial, thanks. Why using MessagePattern and switch to rpc? In Auth microservice the rmq auth queue is connected, isn't that mean that we can use EventPattern in auth controller?
@dev_jeongdaeri
@dev_jeongdaeri 2 жыл бұрын
You are the best!! 😍
@DheerSinghDel
@DheerSinghDel Жыл бұрын
How do we ensure the transaction atomicity in case of any failure, such that the messages are not standing as orphan data in rabbitmq for processing?
@pt4shk4
@pt4shk4 9 ай бұрын
I'm wondering if there or anywhere else a tutorial for doing database stuff like in this video but with typeorm and rdb?
@hadirahmani7943
@hadirahmani7943 Жыл бұрын
instead of inserting data into database into orders app, when i try to do the same actions into billing no any data saved into database, i tried to save your passed data into billing microservice in database. i get 201 but there isn't any data into database and that return empty
@none4614
@none4614 Жыл бұрын
Fantastic video !! Could you make a fullstack microservice project that apply rabitMQ, Kafka, docker, k8s, ... Thanks so much.
@mguay
@mguay Жыл бұрын
My new Ultimate Nest.js Microservices course will cover this! Stay tuned for its release in May.
@MK-we4dl
@MK-we4dl Жыл бұрын
Hi. How to set username and passworf for RabbitMQ in connection options?
@chhaytoch1376
@chhaytoch1376 2 жыл бұрын
It's very great tutorial for microservice senior. Anyway, could you guide or explain us how do we manage the API Versioning for both Route & Codebase?
@mguay
@mguay 2 жыл бұрын
Good idea.
@KePaco-mf1bf
@KePaco-mf1bf 10 ай бұрын
Hi Michael, I'm a newbie with NestJS and RabbitMQ, this series is really nice and helps me a lot to understand, thank you! But I got the error when I practiced, I followed the steps that you did and also downloaded your case to references, but I got these errors while I emitted the message. Do you know what's happened? Error: WARN [Server] An unsupported event was received. It has been acknowledged, so it will not be re-delivered. Pattern: notifications
@kennethirungu6482
@kennethirungu6482 2 жыл бұрын
Awesome work !!, Keep it up !!
@LelekCZE
@LelekCZE 2 жыл бұрын
How would I go about enabling HMR for the individual microservices? I am able to do it for regular NestJS app setup, but with this shared libraries approach, I am not able to figure it out unfortunately.
@olaboyeolanrewaju134
@olaboyeolanrewaju134 Жыл бұрын
I cannot find the bitnami mongodb image repo seems it is no longer open sourced?
@MK-we4dl
@MK-we4dl Жыл бұрын
How in this configuration work whis different queue in one client?
@MrJony-fv3ev
@MrJony-fv3ev Жыл бұрын
May I ask a question Monorepos can't be deployed seperately, so why is this still considered as microservices? It's more monolithic app structure I guess Thanks!
@rahff99
@rahff99 2 жыл бұрын
Hi, at 1:11:05 in ordering apps auth section, I don't understood why are you inject(AUTH_SERVICE) constante which is a string value as injector for clientProxy. How works this and in what way does this constant refer to this service ?
@ekopurnomo9221
@ekopurnomo9221 Жыл бұрын
thank youuu.... for the tutorial😁
@joshhoffer
@joshhoffer 2 жыл бұрын
Michael Guay When I see this tutorial I see something That caters to my direct needs... I hate the overly simple out of the box lessons where you can tell the person is just reading from the documentation and giving you examples that do not function in the same actual way that a production application is going to... they will give you some generic things ... but then just slap a ribbon on the process and call it a day... your giving so many real world examples... and ones that actually illustrate some of the things that the documentation miss or gloss over too quickly... like for instance it was giving me some issues with understanding how things were injected -> because yea its obviously easy enough to use say a mongoose injection.. but to go in and inject the rabbitmq / injecting the billing service... all these interconnected pieces -> and then the fact that were workingn with it all under docker -> and in a single easy to follow flow that you give ever piece it's due time in explaining what it is and how it works... The fact that your showing us how Env can be dynamically used.. is huge... Probably not to someone that knows how to do it already -> but ive never seen that in a nest lesson... they always leave me as prepared as i already was after reading the docs... this gives the bread and butter and then some... please keep making these types of videos my friend
@mguay
@mguay 2 жыл бұрын
Thanks for your kind words!
@patrickjoseph5205
@patrickjoseph5205 Жыл бұрын
Hi Michael. I followed through the video however I want to deploy this on a service like Render. Could you help with this?
@ElyesBoudhina
@ElyesBoudhina 8 ай бұрын
Did you create an APi gateway?
@christopherkiessling
@christopherkiessling 8 ай бұрын
Amazing! Just a quick feedback please don't say go ahead and... each new sentence, thanks
@its_grs
@its_grs 2 жыл бұрын
Great content. Thank you. I have a small doubt regarding registering the RmqModule. You have registered it in order module import. However If I want to use it in another module should I register again? Or is there anyway I can register it to a common module and import that module everywhere else in my code. For example emailQueue is something that I might require in multiple modules (order, billing and auth). Can you suggest me a generic way to register EMAIL_SERVICE (emailQueue) in all the modules please?
@adriandrozman3404
@adriandrozman3404 2 жыл бұрын
You are the best,thanks!!!
@oyinlolaolasunkanmi
@oyinlolaolasunkanmi 2 жыл бұрын
How does my application consume multiple queues. I saw an approach someone suggested on stackoverflow where you repeat the "app.connectMicroservice" for each queues, is there a cleaner approach ?
@yaiDev
@yaiDev Жыл бұрын
Thank you for great tutorial. But I'm not idea write unit testing for controller and services. I try to write a. unit test but not work because it many dependencies. Please help or guide how write unit test.
@bhupenpal
@bhupenpal Жыл бұрын
Hi! Thanks for the great tutorial... Is it possible to specify queue while emitting the event?
@programmingdoze7025
@programmingdoze7025 2 жыл бұрын
@michael thanks. Can u throw some light on nestjs with saga topic? I am really confused with saga
@JollyReaper_666
@JollyReaper_666 2 жыл бұрын
well explained, learned a lot, liked the way you make use of the common library for rmq and mongo I'm having a bit of trouble connecting to my mongodb when using compass, can I simply connect on localhost:27017 with root:password123 ? or is it different with the way it's set up in your video?
@regedam7559
@regedam7559 Жыл бұрын
What if we need to use a schema from another microservice? How we can import it?
@tzion21
@tzion21 2 жыл бұрын
​ @Michael Guay hey, do you have any course about nestjs with microservices from scratch? or another option, what is the best approach to learn nest js and microservices? i know express, and i know the concept of microservices, but i did not understand what is nestjs and nestjs microservices . thanks
@burakbey1775
@burakbey1775 2 жыл бұрын
Great content 🙏🏻
@aletothemoon
@aletothemoon Жыл бұрын
Hey nice content! Can you share your vscode extensions and theme?
Deploy Node.js Microservices on AWS With EKS & Helm
40:04
Michael Guay
Рет қаралды 14 М.
The intro to Docker I wish I had when I started
18:27
typecraft
Рет қаралды 238 М.
The Ultimate Sausage Prank! Watch Their Reactions 😂🌭 #Unexpected
00:17
La La Life Shorts
Рет қаралды 7 МЛН
Walking on LEGO Be Like... #shorts #mingweirocks
00:41
mingweirocks
Рет қаралды 7 МЛН
Hoodie gets wicked makeover! 😲
00:47
Justin Flom
Рет қаралды 127 МЛН
NestJs Microservices with RabbitMQ
23:21
Computerix
Рет қаралды 16 М.
Learn NestJS Microservices in 20 Minutes
20:34
Tech Vision
Рет қаралды 18 М.
NestJS + Prisma Deep Dive
51:42
Michael Guay
Рет қаралды 25 М.
Microservices are Technical Debt
31:59
NeetCodeIO
Рет қаралды 632 М.
Microservices with Databases can be challenging...
20:52
Software Developer Diaries
Рет қаралды 90 М.
DHH discusses SQLite (and Stoicism)
54:00
Aaron Francis
Рет қаралды 99 М.
Decouple your NestJS code with this technique!
11:37
Marius Espejo
Рет қаралды 41 М.
Nest.js | Middleware, Pipes & Interceptors Explained By Example
33:39
NestJS Microservices with RabbitMQ | Messenger Clone [1]
1:08:29
Jon Peppinck
Рет қаралды 44 М.
The Ultimate Sausage Prank! Watch Their Reactions 😂🌭 #Unexpected
00:17
La La Life Shorts
Рет қаралды 7 МЛН