Arquitetura de Domínio Estruturada
Este documento apresenta a organização em Bounded Contexts do Sistema de Processo Judicial, seguindo princípios de Domain-Driven Design para garantir clareza, manutenibilidade e escalabilidade.
Escopo: Gestão da fila de autos conclusos e itens submetidos à decisão do magistrado.
Escopo: Gestão completa do ciclo de vida de pendências processuais.
Escopo: Planejamento, agendamento e condução de audiências e sessões.
Escopo: Criação, cadastro, vínculos e redistribuição de processos.
Escopo: Localização, consulta e manutenção de dados processuais.
Escopo: Autenticação, autorização e gestão de equipes.
Escopo: Emissão e gestão de atos judiciais (certidões, mandados, etc.).
Escopo: Classificadores, regras e automações do sistema.
Escopo: Métricas de produtividade e estatísticas operacionais.
Escopo: Relatórios administrativos e de gestão.
Escopo: Documentos, arquivos, mídias e modelos.
Escopo: Criação e gestão de movimentações processuais.
Escopo: Gestão de partes, advogados e representantes.
Escopo: Gestão financeira de guias e custas processuais.
Escopo: Interfaces públicas e serviços externos.
src/main/java/br/gov/go/tj/projudi/
├── conclusao/ # Conclusões e Decisões
├── pendencia/ # Pendências e Cumprimentos
├── audiencia/ # Audiências, Sessões e Agenda
├── processo/
│ ├── ciclovida/ # Ciclo de Vida do Processo
│ └── consulta/ # Consulta e Dados do Processo
├── identidadeacesso/ # Identidade, Acesso e Equipes
├── ato/ # Atos e Instrumentos Judiciais
├── configuracao/ # Configurações e Automação
├── relatorio/
│ ├── produtividade/ # Estatísticas e Produtividade
│ └── gerencial/ # Relatórios Gerenciais
├── documento/ # Gestão Documental
├── movimentacao/ # Movimentações Processuais
├── parte/ # Partes e Representação
├── financeiro/ # Financeiro — Guias e Custas
└── api/publica/ # APIs Públicas e Serviços
O Shared Kernel contém elementos fundamentais do domínio que são compartilhados entre múltiplos bounded contexts, como value objects, enums e utilitários básicos que representam conceitos universais do sistema judicial.
// Identificadores únicos
ProcessoId, ServentiaId, UsuarioId, ComarcaId, CargoId, AreaId
AssessorId, AdvogadoId, ParteId, GuiaId, AudienciaId
// Dados estruturados
CPF, CNPJ, RG, OAB, Email, Telefone
CEP, Endereco, NumeroProcesso
// Períodos e datas
PeriodoProcessual, DataAudiencia, PrazoLegal
// Status universais
StatusProcesso, StatusPendencia, StatusAudiencia, StatusGuia
// Tipos e classificações
TipoProcesso, TipoMovimentacao, TipoPendencia, TipoAudiencia
PerfilUsuario, TipoDocumento, GrauInstancia
// Configurações do sistema
ConfiguracaoSistema, ParametrosGerais
✅ Melhor coesão: Contextos mais equilibrados em tamanho
✅ Menos overhead: Redução de contextos muito pequenos
✅ Maior flexibilidade: Espaço para crescimento futuro
✅ Manutenibilidade: Organização mais clara para desenvolvedores
✅ Reutilização: Shared Kernel elimina duplicação de conceitos fundamentais
✅ Consistência: Uso padronizado de value objects e validações em todos os contextos