MicroService MultiShop is an e-commerce platform built with a microservices architecture.
It integrates modern architectural patterns, communication tools, and multiple databases to provide a robust and flexible system.
-
Ocelot Gateway
Acts as the API Gateway to route requests, manage load balancing, and centralize cross-cutting concerns such as authentication and logging. -
IdentityServer4
Provides secure authentication and authorization based on OAuth2 and OpenID Connect standards. -
Docker & Portainer
Containers are used for consistent environments and easy deployment; Portainer simplifies container management with a web UI. -
MSSQL, MongoDB, PostgreSQL
Multiple databases are used depending on the service requirements, covering both relational and NoSQL storage needs. -
Docker-SQL-Linux
Runs MSSQL inside a Linux-based Docker container to provide cross-platform database services. -
JWT Authentication & Authorization
Implements JSON Web Tokens to securely manage user sessions and API access. -
Redis
Used for caching and fast data access, enhancing overall system performance. -
RabbitMQ
Provides asynchronous communication between microservices using a reliable message broker. -
SignalR
Enables real-time communication between server and clients, supporting features like notifications and live updates. -
Localization & Globalization
Provides multi-language and culture support to serve international users. -
Rapid API
Enables seamless integration with external APIs to extend platform functionality. -
MediatR Pattern
Implements the mediator design pattern to handle requests and responses, improving code readability and maintainability. -
CQRS Pattern
Separates command (write) and query (read) responsibilities for better scalability and performance. -
Repository Pattern
Abstracts the data access layer, ensuring clean separation of concerns and easier unit testing. -
Onion Architecture
Enforces a dependency rule where outer layers depend on inner layers, increasing testability and maintainability. -
N-Tier Architecture
Divides the application into distinct layers (Presentation, Business, Data) to improve modularity.
Follow the steps below to run the project locally:
# 1. Clone the repository
git clone https://github.com/EnesSERENLI/MicroService_MultiShop.git
# 2. Navigate into the project directory
cd MicroService_MultiShop
# 3. Configure the required settings
# (e.g., connection strings, RabbitMQ configuration, Portainer access, etc.)
# 4. Start the Docker environment
docker-compose up -d
# 5. Run the application
# Start each service via IDE or terminal as needed
# 6. Test the application
# Access the gateway or service endpoints via http://localhost