CRM Docs
Arquitetura Backend

Glossário

Termos da arquitetura backend

Termo (EN)Significado
GatewayContrato abstrato (port) entre application e infrastructure
Repository GatewayGateway específico para persistência de um agregado
DefaultRepositoryGatewayContrato CRUD genérico com companyId em todos os métodos
KnexDefaultRepositoryImplementação Knex do CRUD padrão
MapperGatewayContrato de conversão APP ↔ INFRA
Use CaseClasse de orquestração com método execute()
Entity (APP)Objeto de domínio em app/entities/
DTOData Transfer Object — contrato HTTP em domain/dtos/
INFRA / Knex rowTipo alinhado às colunas MSSQL
CompanyKnexProviderResolvedor de conexão Knex por companyId
GCIGuards, Context, Injection — permissões e decorators HTTP
ProducerUse case que publica mensagem em fila
Consumer / WorkerClasse infra que processa mensagens da fila
Fat workerConsumer que orquestra múltiplos gateways (não apenas adaptador)
Multi-tenantIsolamento por banco MSSQL por empresa
provide / useClassPadrão NestJS para binding gateway → implementação

Referências rápidas de código

PadrãoArquivo
Default gatewaysrc/app/gateways/default.repository.gateway.ts
Default Knex reposrc/infra/database/knex/repositories/knex-default.repository.ts
Mapper contractsrc/app/gateways/mapper.gateway.ts
DI registrysrc/infra/database/database.module.ts
Multi-tenant DBsrc/infra/database/knex/company-knex.ts
Bootstrap 3 appssrc/main.ts

On this page