Sistema de controle de estoque.
Este projeto está em desenvolvimento. As seguintes tarefas precisam ser feitas para a conclusão.
- Validações de negócio na API Products e testes de unidade.
- Publicação de eventos de atualização de produtos no RabbitMQ.
- Implementação do microsserviço Stock Alert: consumir fila do RabbitMQ e disparar e-mail para o Gestor de Produtos através do SendGrid, caso o estoque esteja abaixo do configurado no alerta.
- Implementação do API Gateway.
- Cada microsserviço é isolado, têm o seu próprio banco de dados.
- Arquitetura das APIs seguia a definição da Onion Architecture de Jeffrey Palermo.
- As camadas foram separadas em projetos (
.csproj
) diferentes, para que as dependências pudessem ficar isoladas por contexto.
- As camadas foram separadas em projetos (
Camada que inclui os objetos de negócio e suas regras, é a principal camada da aplicação.
A camada Application aplica o fluxo de regras que a sua aplicação precisa para trabalhar. Isso não são necessariamente regras de negócio; mas regras comportamentais do fluxo que a aplicação vai trabalhar.
Por exemplo, podemos criar um application service para orquestrar um fluxo de cadastro de cliente onde: primeiro salva uma entidade em um repositório; em seguida, escreve um log; publica uma mensagem em uma fila para que outros sistemas saibam do cadastro dessa nova entidade; e, por último, envia um e-mail confirmando o cadastro.
Fornece recursos técnicos para as demais camadas, principalmente usando bibliotecas de terceiros (3rd-party libraries).
Contém a lógica de apresentação e interação com o usuário. Usa a camada Application para atender as solicitações do cliente.
- Na pasta
/src
execute o comando para fazer o build do Docker Compose.
docker-compose build
- Ainda na pasta
/src
, ultilize o comando a seguir para executar o container.
docker-compose -p commerce-container up
- Conventional Commits: padronização dos commits.
- C4 model: notação para desenho da arquitetura de sistemas.
- Mermaid: Ferramenta de diagramação e gráficos, baseado em código.
- Exemplo Trigger Auditoria