{"id":28376141,"url":"https://github.com/ozturkeniss/microservices-designed2","last_synced_at":"2025-06-26T10:31:12.871Z","repository":{"id":291018021,"uuid":"976314897","full_name":"ozturkeniss/MicroServices-Designed2","owner":"ozturkeniss","description":"A .NET 8 based e-commerce platform using microservices architecture with RabbitMQ, Redis, PostgreSQL, and YARP, all containerized with Docker.","archived":false,"fork":false,"pushed_at":"2025-05-02T21:41:55.000Z","size":46,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-30T00:05:32.005Z","etag":null,"topics":["docker","e-commerce","microservices-architecture","rabbitmq","testing","yarp-gateway"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ozturkeniss.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-01T22:17:26.000Z","updated_at":"2025-05-02T21:41:59.000Z","dependencies_parsed_at":"2025-05-11T23:28:23.614Z","dependency_job_id":null,"html_url":"https://github.com/ozturkeniss/MicroServices-Designed2","commit_stats":null,"previous_names":["kalzimkholodros/microservices-designed2","ozturkeniss/microservices-designed2"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ozturkeniss/MicroServices-Designed2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ozturkeniss%2FMicroServices-Designed2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ozturkeniss%2FMicroServices-Designed2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ozturkeniss%2FMicroServices-Designed2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ozturkeniss%2FMicroServices-Designed2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ozturkeniss","download_url":"https://codeload.github.com/ozturkeniss/MicroServices-Designed2/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ozturkeniss%2FMicroServices-Designed2/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262047844,"owners_count":23250428,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","e-commerce","microservices-architecture","rabbitmq","testing","yarp-gateway"],"created_at":"2025-05-30T00:05:33.000Z","updated_at":"2025-06-26T10:31:12.860Z","avatar_url":"https://github.com/ozturkeniss.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Microservices E-Commerce Platform\n\nA modern e-commerce platform built with microservices architecture using .NET 8, Docker, and various modern technologies.\n\n## Architecture Overview\n\n```mermaid\ngraph TD\n    A[API Gateway] --\u003e B[Product Service]\n    A --\u003e C[Basket Service]\n    A --\u003e D[Order Service]\n    A --\u003e E[Payment Service]\n    \n    B --\u003e F[(PostgreSQL)]\n    C --\u003e G[(Redis)]\n    D --\u003e F\n    E --\u003e F\n    \n    C --\u003e B\n    D --\u003e C\n    E --\u003e D\n    \n    H[RabbitMQ] --\u003e C\n    H --\u003e D\n    H --\u003e E\n    \n    subgraph \"Data Storage\"\n        F\n        G\n    end\n    \n    subgraph \"Message Broker\"\n        H\n    end\n    \n    subgraph \"Core Services\"\n        B\n        C\n        D\n        E\n    end\n```\n\n## System Flow\n\n```mermaid\nsequenceDiagram\n    participant Client\n    participant Gateway\n    participant Product\n    participant Basket\n    participant Order\n    participant Payment\n    participant RabbitMQ\n    \n    Client-\u003e\u003eGateway: Browse Products\n    Gateway-\u003e\u003eProduct: GET /api/products\n    Product--\u003e\u003eGateway: Return Products\n    Gateway--\u003e\u003eClient: Display Products\n    \n    Client-\u003e\u003eGateway: Add to Basket\n    Gateway-\u003e\u003eBasket: POST /api/basket\n    Basket-\u003e\u003eProduct: GET /api/products/{id}\n    Product--\u003e\u003eBasket: Product Details\n    Basket--\u003e\u003eGateway: Basket Updated\n    Gateway--\u003e\u003eClient: Confirmation\n    \n    Client-\u003e\u003eGateway: Checkout\n    Gateway-\u003e\u003eOrder: POST /api/orders\n    Order-\u003e\u003eBasket: GET /api/basket\n    Basket--\u003e\u003eOrder: Basket Contents\n    Order-\u003e\u003ePayment: POST /api/payments\n    Payment--\u003e\u003eOrder: Payment Confirmation\n    Order-\u003e\u003eRabbitMQ: OrderCreated\n    RabbitMQ-\u003e\u003eBasket: ClearBasket\n    Order--\u003e\u003eGateway: Order Confirmation\n    Gateway--\u003e\u003eClient: Order Details\n```\n\n## Technologies Used\n\n- **.NET 8**: Core framework for all microservices\n- **Docker**: Containerization and orchestration\n- **PostgreSQL**: Primary database for Product, Order, and Payment services\n- **Redis**: In-memory cache for Basket service\n- **RabbitMQ**: Message broker for async communication\n- **YARP**: API Gateway implementation\n- **MediatR**: CQRS pattern implementation\n- **AutoMapper**: Object mapping\n- **Swagger/OpenAPI**: API documentation\n\n## Getting Started\n\n1. Clone the repository\n2. Ensure Docker and Docker Compose are installed\n3. Run `docker-compose up -d`\n4. Access services through the API Gateway at `http://localhost:5223`\n\n## Service Ports\n\n- API Gateway: 5223\n- Product Service: 5043\n- Basket Service: 5228\n- Order Service: 5193\n- Payment Service: 5173\n- PostgreSQL: 5432\n- Redis: 6379\n- RabbitMQ: 5672 (AMQP), 15672 (Management UI)\n\n## Development\n\nEach microservice is independently deployable and follows the same basic structure:\n- Application Layer: Business logic and use cases\n- Infrastructure Layer: External services and persistence\n- API Layer: Controllers and endpoints\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Commit your changes\n4. Push to the branch\n5. Create a Pull Request\n\nMicroServices-Designed: https://github.com/kalzimkholodros/MicroServices-Designed\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fozturkeniss%2Fmicroservices-designed2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fozturkeniss%2Fmicroservices-designed2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fozturkeniss%2Fmicroservices-designed2/lists"}