ASP.NET Core Microservices with MongoDB (edit)
- MongoDB
- Kafka
- Microservices
- ASP.NET Core
MongoDB and Data Streaming: Implementing a MongoDB Kafka Consumer - DZone Big Data
Data Streaming with Apache Kafka & MongoDB - EMEA (slideshare.net)
MongoDB Connector for Apache Kafka 1.5 Available Now | MongoDB
Whats Including In This Repository
We have implemented below features over the run-aspnetcore-microservices repository.
Catalog microservice which includes;
- ASP.NET Core Web API application
- REST API principles, CRUD operations
- MongoDB database connection and containerization
- Repository Pattern Implementation
- Swagger Open API implementation
Basket microservice which includes;
- ASP.NET Web API application
- REST API principles, CRUD operations
- Redis database connection and containerization
- Consume Discount Grpc Service for inter-service sync communication to calculate product final price
- Publish BasketCheckout Queue with using MassTransit and RabbitMQ
Discount microservice which includes;
- ASP.NET Grpc Server application
- Build a Highly Performant inter-service gRPC Communication with Basket Microservice
- Exposing Grpc Services with creating Protobuf messages
- Using Dapper for micro-orm implementation to simplify data access and ensure high performance
- PostgreSQL database connection and containerization
Microservices Communication
- Sync inter-service gRPC Communication
- Async Microservices Communication with RabbitMQ Message-Broker Service
- Using RabbitMQ Publish/Subscribe Topic Exchange Model
- Using MassTransit for abstraction over RabbitMQ Message-Broker system
- Publishing BasketCheckout event queue from Basket microservices and Subscribing this event from Ordering microservices
- Create RabbitMQ EventBus.Messages library and add references Microservices
Ordering Microservice
- Implementing DDD, CQRS, and Clean Architecture with using Best Practices
- Developing CQRS with using MediatR, FluentValidation and AutoMapper packages
- Consuming RabbitMQ BasketCheckout event queue with using MassTransit-RabbitMQ Configuration
- SqlServer database connection and containerization
- Using Entity Framework Core ORM and auto migrate to SqlServer when application startup
API Gateway Ocelot Microservice
- Implement API Gateways with Ocelot
- Sample microservices/containers to reroute through the API Gateways
- Run multiple different API Gateway/BFF container types
- The Gateway aggregation pattern in Shopping.Aggregator
WebUI ShoppingApp Microservice
- ASP.NET Core Web Application with Bootstrap 4 and Razor template
- Call Ocelot APIs with HttpClientFactory and Polly
Microservices Cross-Cutting Implementations
- Implementing Centralized Distributed Logging with Elastic Stack (ELK); Elasticsearch, Logstash, Kibana and SeriLog for Microservices
- Use the HealthChecks feature in back-end ASP.NET microservices
- Using Watchdog in separate service that can watch health and load across services, and report health about the microservices by querying with the HealthChecks
Microservices Resilience Implementations
- Making Microservices more resilient Use IHttpClientFactory to implement resilient HTTP requests
- Implement Retry and Circuit Breaker patterns with exponential backoff with IHttpClientFactory and Polly policies
Ancillary Containers
- Use Portainer for Container lightweight management UI which allows you to easily manage your different Docker environments
- pgAdmin PostgreSQL Tools feature rich Open Source administration and development platform for PostgreSQL
Docker Compose establishment with all microservices on docker;
- Containerization of microservices
- Containerization of databases
- Override Environment variables
What you'll learn
-
ASPNET Core Web API Development of Microservices
-
REST API Principles, CRUD Operations
-
Mongo DB and Redis NoSQL Database Connection on Docker
-
Entity Framework Core with SQL Server Database Connection on Docker
-
N-Layer implementation with Repository Pattern
-
Swagger Open API implementation
-
Consume Discount Grpc Service for inter-service sync communication to calculate product final price
-
Publish BasketCheckout Queue with using MassTransit and RabbitMQ
-
Build a Highly Performant inter-service gRPC Communication with Basket Microservice
-
Using Dapper for micro-orm implementation to simplify data access and ensure high performance
-
PostgreSQL database connection and containerization
-
Async Microservices Communication with RabbitMQ Message-Broker Service
-
Using RabbitMQ Publish/Subscribe Topic Exchange Model
-
Using MassTransit for abstraction over RabbitMQ Message-Broker system
-
Implementing DDD, CQRS, and Clean Architecture with using Best Practices
-
Developing CQRS with using MediatR, FluentValidation and AutoMapper packages
-
Consuming RabbitMQ BasketCheckout event queue with using MassTransit-RabbitMQ Configuration
-
Using Entity Framework Core ORM and auto migrate to SqlServer when application startup
-
Ocelot API Gateway Development of Microservices
-
Call Ocelot APIs with HttpClientFactory
-
The Gateway aggregation pattern in Shopping Aggregator
-
ASPNET Core Web Application with Bootstrap 4 and Razor template
-
Docker Compose Containerization of All Microservices
-
Use Portainer for Container lightweight management UI which allows you to easily manage your different Docker environments
-
pgAdmin PostgreSQL Tools feature rich Open Source administration and development platform for PostgreSQL