Using gRPC in Microservices Communication with .Net 5
What you'll learn
- gRPC in Microservices with .Net 5
- Working with Protocol Buffers using proto3 Language and apply google well-known types
- gRPC Method Types, RPC life cycles - Unary, Server streaming, Client streaming, Bidirectional streaming
- Develop Protocol Buffer File (protobuf file) for gRPC Contract-First API Development
- Building a high-performance gRPC Inter-service Communication with .Net 5
- Communication between backend microservices with gRPC and AspNet 5
- Background tasks with Worker Service Projects in AspNet Core 5
- Manage long running service apps with AspNet Core Worker Service template
- Consuming a scoped gRPC services in a background task with Worker Service Projects in AspNet Core 5
- Implementation of e-commerce logic with only gRPC communication - Product, ShoppingCart and Discount gRPC services
- Consuming gRPC Server Microservices from Product and ShoppingCart Worker Service in a background task
- Secure the gRPC services with standalone Identity Server microservices with OAuth 2.0 and JWT token
- ProductGrpc Server Expose CRUD operations with gRPC
- Using Entity Framework Core 5 In-Memory Database with Code-First Approach
- Develop Realworld Inter-Service Communication Use Case with Product, ShoppingCart and Discount gRPC services and Consumes from Worker Services
- Use gRPC to implement a fast and distributed microservices systems
- Create Client Console Application for Consuming Grpc Microservices
- Generate Products with ProductFactory class in Product Worker Service Application
- Logging and Exception Handling with Grpc Server Application
- Authenticate gRPC Services with IdentityServer4 Protect ShoppingCartGrpc Method with OAuth 2.0 and JWT Bearer Token
- C# knowledges
- Aspnet core basics knowledge
You will learn how to Build a high-performance gRPC Inter-service Communication between backend microservices with .Net 5 and AspNet 5.
Microservices are modern distributed systems so with gRPC in ASP.NET 5, we will develop high-performance, cross-platform applications for building distributed systems and APIs. It’s an ideal choice for communication between backend microservices, internal network applications, or iot devices and services. With the release of ASP.NET 5, Microsoft has added first-class support for creating gRPC services with Asp.Net 5.
This course will led you get started building, developing and managing gRPC servers and clients on distributed microservices architecture.
Check the overall picture
You can see that we will have 6 microservices which we are going to develop one by one.
We will use Worker Services and Asp.Net 5 Grpc Applications to build client and server gRPC components defining proto service definition contracts.
We will implement realworld e-commerce use case with only gRPC communication. We will have 3 gRPC server applications which are Product — ShoppingCart and Discount gRPC services. And we will have 2 worker services which are Product and ShoppingCart Worker Service. Worker services will be client and perform operations over the gRPC server applications. And we will secure the gRPC services with standalone Identity Server microservices with OAuth 2.0 and JWT token.
ProductGrpc Server Application
First of all, we are going to develop ProductGrpc project. This will be Asp.Net gRPC server web application and expose apis for Product Crud operations.
Product Worker Service
After that, we are going to develop Product Worker Service project for consuming ProductGrpc services. This product worker service project will be the client of ProductGrpc application and generate products and insert bulk product records into Product database by using client streaming gRPC proto services of ProductGrpc application. This operation will be in a time interval and looping as a service application.
ShoppingCartGrpc Server Application
After that, we are going to develop ShoppingCartGrpc project. This will be Asp.Net gRPC server web application and expose apis for SC and SC items operations. The grpc services will be create shopping cart and add or remove item into shopping cart.
ShoppingCart Worker Service
After that, we are going to develop ShoppingCart Worker Service project for consuming ShoppingCartGrpc services. This ShoppingCart worker service project will be the client of both ProductGrpc and ShoppingCartGrpc application. This worker service will read the products from ProductGrpc and create sc and add product items into sc by using gRPC proto services of ProductGrpc and ShoppingCartGrpc application. This operation will be in a time interval and looping as a service application.
DiscountGrpc Server Application
When adding product item into SC, it will retrieve the discount value and calculate the final price of product. This communication also will be gRPC call with SCGrpc and DiscountGrpc application.
Also, we are going to develop centralized standalone Authentication Server with implementing IdentityServer4 package and the name of microservice is Identity Server.
Identity Server4 is an open source framework which implements OpenId Connect and OAuth2 protocols for .Net Core.
With IdentityServer, we can provide protect our ShoppingCart gRPC services with OAuth 2.0 and JWT tokens. SC Worker will get the token before send request to ShoppingCart Grpc server application.
By the end of this course, you will have a practical understanding of how to use gRPC to implement a fast and distributed microservices systems. And Also you’ll learn how to secure protected grpc services with IdentityServer in a microservices architecture.
Is this course for you?
This course is very practical, about 90%+ of the lessons will involve you coding along with me on this project. If you are the type of person who gets the most out of learning by doing, then this course is definitely for you.
Tools you need for this course
In this course all the lessons are demonstrated using Visual Studio 2019 as a code editor. You can of course use any code editor you like and any Operating system you like as long as it's Windows or Mac.
Who this course is for:
- .Net developers who interested in gRPC and Microservices
Creator of github aspnetrun repositories
• Strong experience Design and implement RESTful APIs JSON design, SOAP Web Services using WCF and ASP.NET Core Web API
• Excellent knowledge on Object-Oriented Design and Development, SOLID principles, DDD, Design Patterns, SOA, TDD and Unit Testing.
• Experience using ORM tools such as Entity Framework Core, NHibernate, Dapper.
• Strong experience of Distributed Software Architecture and Messaging Technologies in Microservices Architecture, API Gateways (Orleans), BDD, DDD/CQRS patterns, Distributed Message Broker Service Bus Applications(MQTT, AMQT, MassTransit, RabbitMQ, Azure Service Bus), Event Sourcing, Cloud Computing Architectures, IAAS platforms (AWS, Azure), Application Containerization, Docker.
• Using Distributed Caching and Related Open Source Tools such as Redis, Camunda, Castle Windsor, AutoMapper, Log4Net.
GitHub : mehmetozkaya
GitHub : aspnetrun