Status do Projeto: Em Desenvolvimento
Loja virtual com o objetivo de solidificar o conhecimento em microsserviços, ASP.NET Core, Docker, MongoDB, RabbitMQ, Redis e Ocelot API Gateway.
Primeiramente, clone o repositório:
git clone https://github.com/sidyjw/virtual_store_microservices.git
O projeto fornece suporte ao Docker, caso deseje utilizar o docker-compose basta executar os seguintes comandos na pasta raiz do projeto:
cd src
docker-compose -f docker-compose.yml -f docker-compose.override.yml up -d
API REST responsável pelo CRUD dos produtos. Foi usado o Repository pattern para realizar as operações nos dados.
A persistência é feita pelo MongoDB e é utilizado o driver oficial para manipular o banco de dados.
API REST responsável pelo CRUD dos carrinhos de compra. Foi usado o Repository pattern para realizar as operações nos dados.
É feito um cache dos dados utilizando o Redis. O repository usa o driver oficial do Redis para realizar as manipulações dos dados.
As informações de disconto são obtidas ao consumir o Serviço gRPC Discount.
- Microsoft.Extensions.Caching.StackExchangeRedis
- Microsoft.VisualStudio.Azure.Containers.Tools.Targets
- Newtonsoft.Json
- Swashbuckle.AspNetCore
API REST responsável por gerenciar os cupons de desconto. Para auxiliar na manipulação do banco PostgreSQL foi usado o Dapper ORM.
A escolha do Dapper foi feita para poder atingir uma alta performance nas querys ao mesmo tempo em que exemplifica a flexibilidade da arquitetura de microsserviços por mostrar que é possÃvel usar várias formas de armazenar os dados.
- Dapper
- Microsoft.VisualStudio.Azure.Containers.Tools.Targets
- Npgsql
- Swashbuckle.AspNetCore
Serviço gRPC responsável por gerenciar os cupons de desconto.
Esse serviço será consumido pela Api Basket. Por isso, utilizei o gRPC para realizar a comunicação entre processos.