DuckStore é uma aplicação de e-commerce moderna e escalável, projetada para demonstrar conceitos avançados de arquitetura de software e integração de tecnologias. Este projeto utiliza uma abordagem baseada em microsserviços para oferecer uma solução robusta e flexível.
É um exemplo de e-commerce que permite aos usuários gerenciar carrinhos de compras, aplicar descontos e realizar transações de forma eficiente. Ele simula um ambiente real de comércio eletrônico, integrando serviços como banco de dados, cache, mensageria e APIs externas.
A arquitetura do DuckStore é baseada em microsserviços, com comunicação assíncrona entre os serviços. Cada serviço segue os princípios de Vertical Slice Architecture, Ports and Adapters, Clean Architecture e três camadas.
A comunicação entre os serviços é feita utilizando o RabbitMQ como broker de mensagens, garantindo integração assíncrona e desacoplada. Essa abordagem permite maior escalabilidade, flexibilidade e facilidade de manutenção.
Abaixo está uma visão geral da arquitetura:
Cada serviço é responsável por uma funcionalidade específica, como gerenciamento de carrinho, descontos e processamento de pedidos, seguindo os princípios de modularidade e separação de responsabilidades.
- C# e .NET: Linguagem e framework principal para desenvolvimento.
- Aspire: Framework para simplificar a criação de APIs e serviços.
- Angular: Framework para desenvolvimento de front-end.
- Blazor: Framework para desenvolvimento de interfaces web interativas.
- YARP: Proxy reverso para roteamento de requisições.
- Entity Framework Core: ORM para manipulação de dados.
- SQLite: Banco de dados leve para persistência local.
- SQL Server: Banco de dados relacional robusto para persistência de dados.
- RabbitMQ: Mensageria para comunicação assíncrona entre microsserviços.
- PostgreSQL: Banco de dados relacional para persistência de dados.
- Redis: Cache distribuído para melhorar a performance.
- Marten: Biblioteca para manipulação de dados no PostgreSQL.
- MassTransit: Framework para integração com RabbitMQ.
- FluentValidation: Validação de dados.
- Carter: Framework minimalista para APIs.
- gRPC: Comunicação eficiente entre serviços.
- OpenTelemetry: Observabilidade e rastreamento distribuído.
- Mapster: Biblioteca para mapeamento de objetos.
- .NET SDK 9.0 ou superior
- Docker (opcional, para serviços como RabbitMQ, PostgreSQL e Redis)
- Visual Studio Code com a extensão C# Dev Kit
Clone o repositório:
git clone [Github](https://github.com/KeveenMenezes/DuckStore.git)
cd DuckStoreUtilize a extensão C# Dev Kit para iniciar o projeto:
- Pressione
F5e selecione o folderC#. - Escolha o projeto
C#: AppHostpara iniciar.
Para dúvidas ou sugestões, entre em contato pelo Linkedin



