https://github.com/carloshenriquefs/order-project
📦🚚 - Order Project
https://github.com/carloshenriquefs/order-project
docker gradle java17 kafka mongodb postgresql
Last synced: 5 months ago
JSON representation
📦🚚 - Order Project
- Host: GitHub
- URL: https://github.com/carloshenriquefs/order-project
- Owner: carloshenriquefs
- License: mit
- Created: 2024-08-10T05:37:40.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-22T06:30:17.000Z (almost 2 years ago)
- Last Synced: 2025-08-28T11:36:56.667Z (11 months ago)
- Topics: docker, gradle, java17, kafka, mongodb, postgresql
- Language: Java
- Homepage:
- Size: 125 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## 🚚 - Arquitetura de Microsserviços:
- Sistemas de Pedidos personalizados com cálculos do valor total da compra e o total de items, validando os produtos selecionados;
## 📦 - Microsserviços:
- Order-Service: microsserviço responsável apenas por gerar um pedido inicial, e receber uma notificação. Aqui que teremos endpoints REST para inciar o processo e recuperar os dados dos eventos. O banco de dados utilizado será o MongoDB.
- Orchestrator-Service: microsserviço responsável por orquestrar todo o fluxo de execução da Saga, ele que saberá qual microsserviço foi executado e em qual estado, e para qual será o próximo microsserviço a ser enviado, este microsserviço também irá salvar o processo dos eventos. Este serviço não possui banco de dados.
- Product-Validation-Service: microsserviço responsável por validar se o produto informado no pedido existe e está válido. Este microsserviço guardará a validação de um produto para o ID de um pedido. O banco de dados utilizado será o PostgreSQL.
- Payment-Service: microsserviço responsável por realizar um pagamento com base nos valores unitários e quantidades informadas no pedido. Este microsserviço guardará a informação de pagamento de um pedido. O banco de dados utilizado será o PostgreSQL.
- Inventory-Service: microsserviço responsável por realizar a baixa do estoque dos produtos de um pedido. Este microsserviço guardará a informação da baixa de um produto para o ID de um pedido. O banco de dados utilizado será o PostgreSQL.
## đź“‚ - Estrutura de Pastas:
```
├── projects
│  ├── config
│  | ├── exception
│  | ├── kafka
│  ├── core
│  | ├── consumer
│  | ├── dto
│  | ├── enums
│  | ├── model
│  | ├── producer
│  | ├── repository
│  | ├── service
│  | ├── utils
```
## đź“‹ - Diagrama Funcional:

## ⚙️ - Tecnologias/Ferramentas:
- Java 17
- Spring Boot 3
- Apache Kafka
- API REST
- PostgreSQL
- MongoDB
- Docker
- docker-compose
- Redpanda Console