Modelo de domínio (DDD + SOLID)¶
Recomendado para leitura prévia
- Visão lógica — camadas e fluxo.
- Arquitetura de negócio — responsabilidades de bloco.
DDD estratégico: bounded contexts¶
- QuestionIntakeContext: normaliza pergunta e contexto de sessão.
- MetadataDiscoveryContext: consulta a camada semântica e de metadados (catálogo canônico) via tools MCP.
- SqlSynthesisContext: transforma contexto de metadados em SQL candidato.
- SqlValidationExecutionContext: valida sintaxe via Apache Calcite (dialeto Hive), executa e classifica desfecho.
- ExperimentTrackingContext: registra trilha da sessão e calcula métricas.
Context map¶
QuestionIntakeContext -> MetadataDiscoveryContext(upstream/downstream).MetadataDiscoveryContext -> SqlSynthesisContext(conformist, contrato MCP versionado).SqlSynthesisContext -> SqlValidationExecutionContext(published language:SqlCandidate).SqlValidationExecutionContext -> ExperimentTrackingContext(eventos e métricas).
DDD tático¶
Agregados¶
QuerySessionAggregate: ciclo de vida da sessão, orçamento de tools e estado da corrida.SqlAttemptAggregate: tentativa de SQL, validação, execução e classificação final.
Entidades¶
QuerySessionToolCallMetadataSnapshotSqlCandidateExecutionResultRunRecord
Objetos de valor¶
RunIdModelVersionSeedCommitHashToolBudgetStructuralError
Serviços de domínio¶
StructuralAdherenceServiceToolBudgetPolicyServiceTraceCompletenessService
Aplicação de SOLID¶
- SRP: cada adapter integra um único sistema externo.
- OCP: novas tools MCP entram por extensão de contrato.
- LSP: implementações de
MetadataProviderPortrespeitam semântica canônica. - ISP: interfaces curtas por propósito (
MetadataLookupPort,SqlParsePort,RunEvidencePort). - DIP: casos de uso dependem de portas, não de adapters concretos.
Convenção de pacotes (Spring Boot)¶
com.tcc.text2sql.applicationcom.tcc.text2sql.domaincom.tcc.text2sql.portscom.tcc.text2sql.adapters.incom.tcc.text2sql.adapters.outcom.tcc.text2sql.configcom.tcc.text2sql.observability
Detalhamento dos pacotes em Módulos Spring e das portas em Ports e adapters.
Recomendado para leitura posterior
Seguinte: Camadas MCP — mapeamento tool → porta → contrato → erro.