This project is a microservices-based architecture using .NET6 for Users, Products, Customers and Orders. It utilizes three different databases for each microservice, including Postgres, MS-SQL Server, and MongoDB. An API gateway using Ocelot is also implemented for handling requests and routing to the appropriate microservice.
The architecture consists of four separate microservices, each responsible for handling different aspects of the application:
- Users Microservice: Responsible for handling user-related operations, such as adding, retrieving, updating and authenticating users.
- Products Microservice: Responsible for handling product-related operations, such as adding, retrieving, updating, and deleting products.
- Customers Microservice: Responsible for handling customer-related operations, such as adding, retrieving, updating, and deleting customer information.
- Orders Microservice: Responsible for handling order-related operations, such as placing, retrieving, and updating orders.
Each microservice utilizes its own database, including:
- Users Microservice: MS-SQL Server
- Products Microservice: Postgres
- Customers Microservice: MS-SQL Server
- Orders Microservice: MongoDB
An API gateway using Ocelot is implemented to handle incoming requests and route them to the appropriate microservice.
To set up and run the project, follow these steps:
- Clone the repository
- Set up the three different databases (Postgres, MS-SQL Server, and MongoDB) for each microservice
- Run each microservice individually
- Start the API gateway using Ocelot
- Test the application by making requests through the API gateway
To run the application, navigate to the root directory and execute the following command:
This will start the API gateway and all three microservices. You can then make requests to the API gateway to interact with the application.
- .NET6
- Postgres
- MS-SQL Server
- MongoDB
- Ocelot
- CQRS(MediatR)
- FluentValidation
- JSON Web Token(JWT)
- Redis
- RabbitMQ
- Unit Testing