Arquitetura Backend
Glossário
Termos da arquitetura backend
| Termo (EN) | Significado |
|---|---|
| Gateway | Contrato abstrato (port) entre application e infrastructure |
| Repository Gateway | Gateway específico para persistência de um agregado |
| DefaultRepositoryGateway | Contrato CRUD genérico com companyId em todos os métodos |
| KnexDefaultRepository | Implementação Knex do CRUD padrão |
| MapperGateway | Contrato de conversão APP ↔ INFRA |
| Use Case | Classe de orquestração com método execute() |
| Entity (APP) | Objeto de domínio em app/entities/ |
| DTO | Data Transfer Object — contrato HTTP em domain/dtos/ |
| INFRA / Knex row | Tipo alinhado às colunas MSSQL |
| CompanyKnexProvider | Resolvedor de conexão Knex por companyId |
| GCI | Guards, Context, Injection — permissões e decorators HTTP |
| Producer | Use case que publica mensagem em fila |
| Consumer / Worker | Classe infra que processa mensagens da fila |
| Fat worker | Consumer que orquestra múltiplos gateways (não apenas adaptador) |
| Multi-tenant | Isolamento por banco MSSQL por empresa |
| provide / useClass | Padrão NestJS para binding gateway → implementação |
Referências rápidas de código
| Padrão | Arquivo |
|---|---|
| Default gateway | src/app/gateways/default.repository.gateway.ts |
| Default Knex repo | src/infra/database/knex/repositories/knex-default.repository.ts |
| Mapper contract | src/app/gateways/mapper.gateway.ts |
| DI registry | src/infra/database/database.module.ts |
| Multi-tenant DB | src/infra/database/knex/company-knex.ts |
| Bootstrap 3 apps | src/main.ts |