No video
NestJS gRPC Microservices Tutorial
In this video, we take a look at how we can build scaleable NestJS microservices using gRPC.
GitHub Repo: github.com/mgu...
gRPC Documentation: grpc.io/
Protocol Buffers Documentation:protobuf.dev/p...
Get my highly-rated Udemy courses at a discount here: michaelguay.de...
Timestamps:
00:00:00 Introduction
00:01:24 Setup
00:09:16 Protocol Buffers
00:19:04 Use Protocol Buffers
00:40:57 Implement API Gateway
00:52:10 Testing
Пікірлер: 73
For Windows user : npx protoc --plugin=protoc-gen-ts_proto=".\ ode_modules\\.bin\\protoc-gen-ts_proto.cmd" --ts_proto_out=./ --ts_proto_opt=nestJs=true ./proto/auth.proto
@pabloemilioescobarossa3291
4 ай бұрын
Thx
You truly are the Messi of NestJS.. Thanks for sharing your knowledge with us! 🙏
Can you please start providing an architecture diagram of what you are trying to code at the beginning of the video, using Excalidraw or something? It will help viewers visualize what is actually being built.
@mguay
Жыл бұрын
Sure. Thanks for the suggestion.
Thank you, bro! I was looking for some examples of using gRPC with streams, and your explanation was great! 💪
I love the lane of content that you post man. I am a huge fan of using nest js and containerization, so your content has been a huge source of inspiration to learn more into things like this
nice video, the only video that I learned well about gRPC and nest
can't find better than you in Nestjs. thanks for your useful contents ♡♡
Get my NestJS microservices course at a discount here to dive deeper with gRPC & NestJS in a real project: michaelguay.dev/udemy
@KuriArsene
Жыл бұрын
does this course discuss nest cqrs in more detail that the two videos you made before?
OMG, I guess I am in great luck today.. I was about to work on these feature on Monday and this video just popped up on 🔥🔥🔥
If you're using macOS and encounter the error 'zsh: command not found: protoc' while attempting to execute the command 'protoc --plugin=protoc-gen-ts_proto=./node_modules/.bin/protoc-gen-ts_proto --ts_proto_out=./ --ts_proto_opt=nestJs=true ./proto/auth.proto', you can resolve it by installing the Protocol Buffers compiler. Simply run 'brew install protobuf' assuming you have HomeBrew installed on your Mac. This will install the necessary compiler and resolve the issue.
Thanks a lot. I learning microservises with you from udemy and youtube.
Very nice add to existing content in you full course. 🙏🙏🙏
protoc --plugin=protoc-gen-ts_proto=./node_modules/.bin/protoc-gen-ts_proto --ts_proto_out=./ --ts_proto_opt=nestJs=true ./proto/sample.proto this command is giving error: --ts_proto_out: protoc-gen-ts_proto: %1 is not a valid Win32 application. can anyone help
How to add port number for the auth microservice if we have multiple services are running?
How to handle exception properly on the apigateway? like find one user which is already deleted, the response is 500 instead of 404. But the auth app correctly throw NotFoundException
gracias bro, llegaré lejos con tu ayuda!
I couldn't follow again after running the protoc command because it errored out: protoc --plugin=./node_modules/.bin/protoc-gen-ts_proto --ts_proto_out=./ --ts_proto_opt=nestJs=true ./proto/auth.proto proto/auth.proto:28:1: Expected top-level statement (e.g. "message").
Very helpful! I actually managed to finish the tutorial. Now that I'm back messing around my own personal project, I just have a quick question. Is it possible to await response from a microservice? I basically have a loading UI when a task is ongoing ( saving objects to db) and while I want it to load while awaiting the task to finish and get a response from the microservice (to use that response on the page after the loading UI), I also need the event loop to not get blocked in the process. Does microservices solve this? or would there be a better solution for this. Any reply or a direction would be greatly appreciated. Thanks!
@jomelortega7902
10 ай бұрын
Sounds like an optimistic response from UI (manually altering the current data displayed while waiting the response from backend), Backend shouldn’t care about this
Lord of NestJS for sure right there! Good job, excellent video! +1 sub +1 like
Thank you for this amazing video.
Can you please split this into different repos and show how you'd handle the sharing of different proto files between different projects . I think that's where the issue is.
@sadhakbj
Жыл бұрын
Totally agreed.
@theeaster2839
8 ай бұрын
That’s the default multiservices problem. Use cloud storage, or private npm
@user-ek2jc1xf3y
Ай бұрын
well in that case you'd use something else lol. the point of using nestjs and this setup is that you can have everything in one place. If you're going polyrepo, best of luck not losing your mind.
@NathanielBabalola
Ай бұрын
@@user-ek2jc1xf3y loool
This was something that i wanted to request you for our microservices course, you created a video wow. Will you add a small section in our existing microservice course?
@mguay
Жыл бұрын
Yes that is next! Thanks for your support.
Brilliant video.
Hey! Love your video, thanks! I came over one question during development, hope you will answer on it: by following conventions, where Data Transfer Objects can be used in application? Which layers? Or such kind of entities can be accessible through all application's layers? What is the best practice for DTOs?
which version number using protoc cli, latest version not find in auth.ts user service controllers
Thanks ❤
how can I catch errors thrown from the auth service on the API Gateway side? I know I should use exception filters, but I've tried several ways and it still doesn't catch the errors.
somebody have the error "terminate called after throwing an instance of 'std::logic_error' what(): basic_string::_M_construct null not valid" when use the command protoc --plugin=./node_modules/.bin/protoc-gen-ts_proto --ts_proto_out=./ --ts_proto_opt=nestJs=true ./proto/auth.proto ?
@luisbrunoaguirrepena2368
10 ай бұрын
protoc --plugin=protoc-gen-ts_proto=. ode_modules\.bin\protoc-gen-ts_proto.cmd --ts_proto_out=./ --ts_proto_opt=nestJs=true ./proto/auth.proto
@ugurcanbas3821
10 ай бұрын
Yes, i am also receiving this error. Can someone help us about that? Is there any compatibility issue with the version of protobuffs? I am using ProtoBuff 24.4
HI, thank you for your great video, but why ts-proto generated socialMedia: SocialMedia | undefined even if there is no optional keyword?
This file contains proto3 optional fields, but --experimental_allow_proto3_optional was not set.
I am confused about the apigateway part in the microservices. Are we supposed to write users module there? Thanks for the video.
best love it
gosh that's alot of manual setting up, is gRPC that new on the market? Great explanations though, so clear👌
Thanks for sharing.
Can we let API gateway communicate with the other microservices by gRPC way as well ?
what theme is you using?
Is there a way to define a gRPC port? I want to test it with other client than the same nestjs
Thank you Sir
What about situation u want to use multiple protofiles
Why ts-proto is not dev dependency?😀
Hi, do you have twitter? how do you learn or follow about all the different tools/packages that you use, for example? keda, artillery etc.
i guess it s better to generate types atomically instead manually
please pin the Proto node modules command, thanks for great tutorial
The use of grpc in not applied correctly
How do I solve this issue: --ts_proto_out: protoc-gen-ts_proto: %1 is not a valid Win32 application.
@nguyenthaituan1836
10 ай бұрын
Try this protoc --plugin=protoc-gen-ts_proto=. ode_modules\.bin\protoc-gen-ts_proto.cmd --ts_proto_out=./ --ts_proto_opt=nestJs=true ./proto/auth.proto
@gibsonsgibson1513
10 ай бұрын
@@nguyenthaituan1836 thans, but I had to create my own custom generator for the typescript code
@jomelortega7902
10 ай бұрын
protoc is not available on windows, you might want to do the development on WSL
@jomelortega7902
10 ай бұрын
But yeah, dunno if there’s an existing alternative that does the same thing as protoc
@gibsonsgibson1513
10 ай бұрын
@@jomelortega7902 better still develop your own
.proto looks like writing a schema for graphql
Why pnpm
@PavleJovanovic-gn3jw
11 ай бұрын
It's much faster than npm, especially on warm starts, and it manages the packages better.
There is no Angular here. Bait title? Incomplete upload? 🤷🏼
how do window users solve this issue for protoc compiler $ protoc --plugin=./node_modules/.bin/protoc-gen-ts_proto --ts_proto_out=./--ts_proto_opt=nestjs=true ./proto/adminauth.proto --ts_proto_out: protoc-gen-ts_proto: %1 is not a valid Win32 application.
@johnadepoju5009
7 ай бұрын
You will have to use the full path instead. For example: protoc --plugin=protoc-gen-ts_proto="C:\path\to\your\project\folder ode_modules\.bin\protoc-gen-ts_proto.cmd" --ts_proto_out=./ --ts_proto_opt=nestJs=true ./proto/auth.proto
@sekhar-oh6iq
2 ай бұрын
It's working in windows machine but not generating the auth.ts file (proto to ts conversion), could you please help me out?