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

  Рет қаралды 111,278

Michael Guay

Michael Guay

Күн бұрын

In this video, we build a complete Nest.js microservices application using RabbitMQ as our distributed fault-tolerant message broker.
Source Code: github.com/mguay22/nestjs-rab...
Video on Nest.js Auth: • Easy Nest.js Authentic...
Video on Nest.js MongoDB: • Setup MongoDB With Nes...
Get my highly rated NestJS Microservices Course at a discount: michaelguay.dev/udemy
Timestamps
00:00:00 Introduction
00:00:54 Setup Monorepo
00:05:30 Add MongoDB
00:08:52 Orders App
00:18:00 Docker
00:28:24 Back to Orders
00:34:20 Microservices
00:37:59 Billing App
00:44:00 Connect apps
00:57:20 Authentication

Пікірлер: 197
@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.
@defrankline
@defrankline Жыл бұрын
This tutorial makes microservice implementation looks so simple. Thanks coder!
@renends7615
@renends7615 Жыл бұрын
This content is unique, it helps us understand, something very complicated into something simple. Great tutorial!
@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.
@pramodkharade5373
@pramodkharade5373 Жыл бұрын
It was an excellent explanation. Ton of things, we can learn. Just waiting for deployment part
@a.nk.r7209
@a.nk.r7209 2 жыл бұрын
Awesome quality content. No BS.
@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.
@virajbaswana
@virajbaswana Жыл бұрын
Such an amazing video. Really helped me learn and build my own custom project. Much Thanks. Looking forward for more nestjs content
@codesuit
@codesuit Жыл бұрын
Awesome! Thanks for the great content, waiting for the deployment part!! ♥ Thx Bro.
@sealuke2724
@sealuke2724 Жыл бұрын
your tutorial is pretty awesome, very well structured
@sarunmrzn
@sarunmrzn Жыл бұрын
Every one of your video helps me so much, thanks for doing this!
@brynjarsmaribragason780
@brynjarsmaribragason780 2 жыл бұрын
Awesome! Looking foward to the deployment video!
@TheThornTech
@TheThornTech 2 жыл бұрын
The course that i waiting for, Thank you so much 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!
@evil-cheetah
@evil-cheetah 2 жыл бұрын
You are amazing! Thank you very much for such great content!
@Vahidk2222
@Vahidk2222 16 күн бұрын
Thanks man, it's really comprehensive. I learnt a lot from it
@nitishagrahari9943
@nitishagrahari9943 Жыл бұрын
excellent tutorial ... great content in such a short time
@lukaspabijonavicius6890
@lukaspabijonavicius6890 11 ай бұрын
You are very good at teaching. Keep it up.
@ms0615122
@ms0615122 2 жыл бұрын
Thank you very much! Viewer from Taiwan.
@christian11x3
@christian11x3 2 жыл бұрын
+1000 loved your content and looking forward for your next video. Thank you and best of luck
@hugotown.entertainment
@hugotown.entertainment Жыл бұрын
This content is amazing, Thank you very much, is the best content ever!
@oigiangbekelvin133
@oigiangbekelvin133 2 жыл бұрын
You're the best. waiting for the deployment part
@nishanthakumara8472
@nishanthakumara8472 2 жыл бұрын
exactly 👍
@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 Жыл бұрын
Best nestjs channel out there.
@anuragannu8930
@anuragannu8930 Жыл бұрын
damn, I learn so many things in one video, thanks, bro.
@postfell
@postfell Жыл бұрын
Minute 5:46, I am loving this tutorial, thanks!
@AntonGorbachevDev
@AntonGorbachevDev 2 жыл бұрын
Thx for great content, i learn alot from this video!)
@devorer77
@devorer77 Жыл бұрын
Thank you! Really useful tutorial.
@codeguy7309
@codeguy7309 Жыл бұрын
absolute gold, thank you man
@leducanh2225
@leducanh2225 Жыл бұрын
Thank you for sharing awesome source code.
@shahzaibahmed4090
@shahzaibahmed4090 11 ай бұрын
Very helpful tutorial. Thank you so much.
@LamLe-cl4he
@LamLe-cl4he Жыл бұрын
Many thanks, great tutorial!
@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: kzfaq.info/get/bejne/iJiel7yQr87ch58.html
@kirakira160
@kirakira160 2 жыл бұрын
OMG!! Our Best Teacher Are Back🥰
@mguay
@mguay 2 жыл бұрын
Appreciate the support!
@mulahem
@mulahem 6 ай бұрын
hey, you have dropped this ... 👑
@totemsports1267
@totemsports1267 Жыл бұрын
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.
@mguay
@mguay Жыл бұрын
Get my highly rated NestJS Microservices Course at a discount: michaelguay.dev/udemy
@cosmic12333
@cosmic12333 29 күн бұрын
thanks so much for this video, i love it
@kennethirungu6482
@kennethirungu6482 2 жыл бұрын
Awesome work !!, Keep it up !!
@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.
@user-sc7by4nv1f
@user-sc7by4nv1f 2 жыл бұрын
Very cool 👍 graphql federation with microservices maybe in future ?
@LelekCZE
@LelekCZE Жыл бұрын
Hey Michael, thanks for the tutorial, super educative! Do you plan to do a tutorial for authorization in NestJS?
@mguay
@mguay Жыл бұрын
Thanks! I have a video on this, check out my channel.
@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?
@adriandrozman3404
@adriandrozman3404 2 жыл бұрын
You are the best,thanks!!!
@sigitkuncoro43
@sigitkuncoro43 Жыл бұрын
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?
@MrOrrGoren
@MrOrrGoren Жыл бұрын
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 ;(
@codinghubfree
@codinghubfree 2 ай бұрын
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?
@ekopurnomo9221
@ekopurnomo9221 Жыл бұрын
thank youuu.... for the tutorial😁
@user-vg9ku2ji1x
@user-vg9ku2ji1x 6 ай бұрын
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.
@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
@antnzr656
@antnzr656 Жыл бұрын
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?
@GodfatherOfKcontent
@GodfatherOfKcontent Жыл бұрын
@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?
@marc-andrequintal570
@marc-andrequintal570 9 ай бұрын
Really nice, were you able to connect into mongo atlas? I can't and it would be great to see data into database
@burakbey1775
@burakbey1775 Жыл бұрын
Great content 🙏🏻
@elco7956
@elco7956 4 ай бұрын
Super interesting topics
@bhupenpal
@bhupenpal Жыл бұрын
Hi! Thanks for the great tutorial... Is it possible to specify queue while emitting the event?
@JollyReaper_666
@JollyReaper_666 Жыл бұрын
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?
@zackinfos5933
@zackinfos5933 4 ай бұрын
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.
@mahendranath2504
@mahendranath2504 Жыл бұрын
Thank you much 👍👌🙌
@its_grs
@its_grs Жыл бұрын
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?
@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?
@mattiastornqvist5311
@mattiastornqvist5311 Жыл бұрын
Very good stuff indeed! Anyone got an idea of how the MongoDB connection string will look like if I try to connect to the running db instances using Compass?
@dev_jeongdaeri
@dev_jeongdaeri 2 жыл бұрын
You are the best!! 😍
@onepointproduction9092
@onepointproduction9092 2 жыл бұрын
superb bro...
@marka8908
@marka8908 2 жыл бұрын
The Best. Thanks
@monawwarabdullah7438
@monawwarabdullah7438 Жыл бұрын
great tutorial
@alexispell4251
@alexispell4251 2 жыл бұрын
Hello! First of all- thanks for such a gift without christmas! Highly liked this course and want to discuss interesting moment, concerning docker-compose. For example, we got a string - /usr/src/app/node_modules in our orders container. But it makes us involved in a problem - each time when we install new deps - we have to restart with docker-compose up --build -V. Which is unnecessary, if we get rid of this string. Do i understand it right, that there are some things, that i dont understand and this is not a mistake? Thanks in advice :3
@alexispell4251
@alexispell4251 2 жыл бұрын
and envFilePath: './apps/orders/.env', also is redundant here and may be omitted
@d4lep0ro
@d4lep0ro Жыл бұрын
Great job.
@randomforest_dev
@randomforest_dev 2 жыл бұрын
Very good one
@programmingdoze7025
@programmingdoze7025 Жыл бұрын
@michael thanks. Can u throw some light on nestjs with saga topic? I am really confused with saga
@VeeWebCode
@VeeWebCode 4 ай бұрын
litterlay a gold mine . nothing else to say 😘😘
@valerymbele4451
@valerymbele4451 Жыл бұрын
Hi Michael. Thanks a lot for such a great tuto. i was struggling with architecture and evething looks more clear now . I previously follow your tuto about gcloud kubernettes deploiement , but that was for mono repo . Please could you show how to deploy this architecture ? how the dockerfile and deploiement.yml should look like , and witch image(s) is sent to docker hub. Thanks in advance.
@valerymbele4451
@valerymbele4451 Жыл бұрын
i finally found your tuto deploying on AWS
@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.
@kimmdev
@kimmdev Жыл бұрын
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."
@zlatkoiliev8927
@zlatkoiliev8927 7 ай бұрын
I got issues with MongooseModule, it says it can’t connect to mongodb-primary 😢
@chhaytoch1376
@chhaytoch1376 Жыл бұрын
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 Жыл бұрын
Good idea.
@jellehuibregtse9476
@jellehuibregtse9476 2 жыл бұрын
Maybe add an episode on testing the application?
@andriyabu
@andriyabu Жыл бұрын
thank you man
@aletothemoon
@aletothemoon 10 ай бұрын
Hey nice content! Can you share your vscode extensions and theme?
@pt4shk4
@pt4shk4 3 ай бұрын
I'm wondering if there or anywhere else a tutorial for doing database stuff like in this video but with typeorm and rdb?
@samuelopeyemi8377
@samuelopeyemi8377 2 жыл бұрын
Thank you
@franccescomichaeljaimesagr7162
@franccescomichaeljaimesagr7162 Жыл бұрын
That was a really good content! One question, if my monorepos had different dependencies, do I necessarily have to create a package.json file in each microservice and have the node_modules folder in each microservice? Could I have common dependencies and also specific dependencies at the same time? Sorry for the questions. I hope you can understand my questions. My native language is spanish 😅. Greetings from Peru.
@mguay
@mguay Жыл бұрын
This is a great question. You could make the individual approach with each service having its own package.json/node_modules, or you have a shared one like in my video. I am not sure if it is possible to have shared/individual at the same time but I would be curious to learn!
@milon27
@milon27 Жыл бұрын
@@mguay can you share any resources link how to setup individual package.json in each micro service?
@moylababa8196
@moylababa8196 2 жыл бұрын
Awesome!
@RomanBorowinski
@RomanBorowinski 2 жыл бұрын
I also can not wait to see deployment
@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?
@LelekCZE
@LelekCZE Жыл бұрын
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.
@tzion21
@tzion21 Жыл бұрын
​ @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
@oyinlolaolasunkanmi
@oyinlolaolasunkanmi Жыл бұрын
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 ?
@rahff99
@rahff99 Жыл бұрын
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 ?
@KePaco-mf1bf
@KePaco-mf1bf 5 ай бұрын
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
@nallamo
@nallamo Жыл бұрын
AWESOME
@nishanthakumara8472
@nishanthakumara8472 2 жыл бұрын
Wow 🤩
@ToTheTMAX
@ToTheTMAX Жыл бұрын
This video is awesome, may i ask which vscode theme this is?
@mguay
@mguay Жыл бұрын
Thanks! Material Theme
@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.
@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 Жыл бұрын
the order service serves as the entry point into the application. Therefore you need to instantiate Rabbit MQ from there.
@MK-we4dl
@MK-we4dl 10 ай бұрын
Hi. How to set username and passworf for RabbitMQ in connection options?
@brucearmstrong5536
@brucearmstrong5536 10 ай бұрын
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
@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
@patrickjoseph5205
@patrickjoseph5205 9 ай бұрын
Hi Michael. I followed through the video however I want to deploy this on a service like Render. Could you help with this?
@MrJony-fv3ev
@MrJony-fv3ev 10 ай бұрын
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!
Deploy Node.js Microservices on AWS With EKS & Helm
40:04
Michael Guay
Рет қаралды 13 М.
Nest.js Microservices Tutorial in 20 Minutes
17:56
Michael Guay
Рет қаралды 98 М.
Como ela fez isso? 😲
00:12
Los Wagners
Рет қаралды 33 МЛН
The delivery rescued them
00:52
Mamasoboliha
Рет қаралды 6 МЛН
100😭🎉 #thankyou
00:28
はじめしゃちょー(hajime)
Рет қаралды 56 МЛН
NestJs Microservices with RabbitMQ
23:21
Computerix
Рет қаралды 5 М.
Learn Docker in 1 Hour | Full Docker Course for Beginners
1:27:53
JavaScript Mastery
Рет қаралды 269 М.
Decouple your NestJS code with this technique!
11:37
Marius Espejo
Рет қаралды 31 М.
API Testing Using Postman | Crash Course
3:27:51
Mukesh otwani
Рет қаралды 74 М.
Build GraphQL Microservices With Nest.js & Apollo Federation 2
29:56
Building a Full Stack Workout Tracker with React Native & MongoDB
3:59:11
Microservices Explained in 5 Minutes
5:17
5 Minutes or Less
Рет қаралды 684 М.
wireless switch without wires part 6
0:49
DailyTech
Рет қаралды 1 МЛН
С Какой Высоты Разобьётся NOKIA3310 ?!😳
0:43
Apple watch hidden camera
0:34
_vector_
Рет қаралды 55 МЛН
Main filter..
0:15
CikoYt
Рет қаралды 756 М.