In this project, a clone of popular online education platform Udemy.com is created using microservice architecture.
- Synchronous and asynchronous communication between microservices using
.Net5.Net 7 - Implementation of OAuth 2.0 and OpenID Connect protocols in Microservices architecture
- Using Eventual Consistency model to ensure consistency in databases of microservices
- Dockerize all microservices using docker-compose
- Asp.Net Core MVC Client for UI
- User Register via IdentityServer4
- Asynchronous order and payment process
- Asynchronous course name update process between catalog, order and basket microservices
It is microservice that is responsible for maintaining and presenting information about courses.
- MongoDb (Database)
- One-To-Many/One-To-One relation
It is microservice that is responsible for basket operations.
- RedisDB (Database)
It is microservice that is responsible for discount coupons to be defined to the user.
- PostgreSQL (Database)
It is the microservice that is responsible for order processing. This microservice is developed using the Domain Driven Design approach. In addition, the MediatR library is used to implement the CQRS design pattern.
- SqlServer (Database)
- Domain Driven Design
- CQRS (MediatR library)
It is Microservice that is responsible for payment processes.
It is the microservice responsible for keeping user data, generating tokens and refresh tokens.
- SqlServer(Database)
- Protect Microservices using Access Token
- OAuth 2.0 / OpenID Connect protocols
It is the microservice that is responsible for keeping and presenting course photos.
- Ocelot Library
RabbitMQ is used as message queue system. MassTransit library is also used for microservices to communicate with RabbitMQ.
- RabbitMQ (MassTransit Library)
It is the UI microservice that displays the data received from Microservices to the user and is responsible for interacting with the user.
