https://github.com/adrianmdeiros/api-nodejs-arquitetura-hexagonal
Exemplo de projeto com arquitetura hexagonal utilizando Node.js e TypeScript.
https://github.com/adrianmdeiros/api-nodejs-arquitetura-hexagonal
express-js hexagonal-architecture nodejs ports-and-adapters postgresql prisma-orm sqlite typescript zod
Last synced: 3 months ago
JSON representation
Exemplo de projeto com arquitetura hexagonal utilizando Node.js e TypeScript.
- Host: GitHub
- URL: https://github.com/adrianmdeiros/api-nodejs-arquitetura-hexagonal
- Owner: adrianmdeiros
- Created: 2024-09-09T23:55:52.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-09-23T23:07:45.000Z (9 months ago)
- Last Synced: 2025-09-24T01:10:04.814Z (9 months ago)
- Topics: express-js, hexagonal-architecture, nodejs, ports-and-adapters, postgresql, prisma-orm, sqlite, typescript, zod
- Language: TypeScript
- Homepage:
- Size: 776 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🛠️ Arquitetura Hexagonal
---
A __Arquitetura Hexagonal__, também conhecida como *Ports and Adapters*, é uma abordagem de design que visa isolar o núcleo da aplicação das dependências externas, como bancos de dados, interfaces de usuário, serviços externos, entre outros. Isso facilita a manutenção, teste e evolução do software.
## 🏗️ Estrutura
- **Núcleo da Aplicação** 🧩
- Contém a lógica de negócio e as regras da aplicação.
- É totalmente independente de detalhes técnicos externos.
- Inclui as entidades, serviços de domínio e casos de uso.
- **Portas** 🚪
- São as interfaces que definem como o núcleo interage com o mundo externo.
- Podem ser entradas (Input Ports) ou saídas (Output Ports).
- **Adaptadores** 🔌
- Implementam as portas para conectar o núcleo às tecnologias externas.
- Podem ser adaptadores para bancos de dados, APIs REST, interfaces gráficas, etc.
- Garantem que o núcleo permaneça desacoplado das ferramentas externas.
## 🔄 Fluxo de Dados
1. **Entrada** 🎮: Um evento externo aciona uma porta de entrada.
2. **Núcleo** 🧠: A lógica de negócio processa o evento, tomando decisões e realizando operações.
3. **Saída** 📤: Se necessário, o núcleo usa uma porta de saída para interagir com um sistema externo.
## 🎯 Benefícios
- **Desacoplamento** 🔗: A lógica de negócio não depende de frameworks ou tecnologias externas.
- **Testabilidade** 🧪: Fica mais fácil testar o núcleo sem precisar de componentes externos.
- **Facilidade de Mudança** 🔄: Mudanças nos adaptadores não afetam o núcleo da aplicação.
### Diagrama de Contexto

---
### Diagrama de Container

---
### Diagrama de Componente