Current Landscape and Convergence¶
1. Objetivo¶
Este documento descreve como o estado atual dos componentes se relaciona com a macro-organizacao proposta.
O objetivo e apoiar a discussao sobre:
- reaproveitamento
- refatoracao
- extracao de responsabilidades
- substituicao de componentes
2. Paisagem atual observada¶
2.1 API Admin¶
O repositorio leds-conectafapes-backend-admin concentra hoje um conjunto amplo de responsabilidades:
- cadastros administrativos
- usuarios e papeis
- editais
- projeto, pessoa e dados bancarios
- planejamento de alocacao
- tabelas de referencia
Tambem ha sobreposicao com o universo de pagamento, inclusive com ocorrencias de PagamentoBolsista no modelo.
Isso sugere que o componente atual opera mais como schema owner central do que como contexto bem delimitado.
2.2 API Pagamento Bolsistas¶
O repositorio leds-conectafapes-backend-pagamento-bolsistas concentra:
- folha
- pagamento de bolsistas
- remessas
- guias de liberacao
- decisoes operacionais
- jobs e processamento em background
Ao mesmo tempo, depende de varias entidades lidas por view ou referencias equivalentes, como:
- projeto
- edital
- pessoa
- alocacao de bolsista
- modalidades e niveis
Isso confirma acoplamento forte com o modelo compartilhado atual.
2.3 API Prestacao de Contas¶
O repositorio leds-conectafapes-prestacao-de-contas esta mais proximo de um contexto proprio.
Ele concentra tabelas e regras associadas a:
- prestacao
- orcamento
- conta contabil
- conta bancaria
- transacao financeira
- documento fiscal
- justificativas
As dependencias externas observadas sao mais contidas, principalmente por referencias a:
- projeto
- alocacao de bolsista
2.4 API Portal¶
O repositorio correto de portal ainda nao foi confirmado na verificacao estrutural.
Mesmo sem essa confirmacao, pelo relato do time ha indicio de que ele misture:
- experiencias administrativas
- experiencias publicas
- modelos parcialmente compartilhados
Se isso se confirmar, o portal deve ser tratado com cautela para nao ser tomado como dominio central.
3. Tensoes principais do estado atual¶
As evidencias atuais apontam quatro tensoes estruturais:
3.1 Ownership difuso de dados¶
Varios componentes parecem depender do mesmo conjunto de tabelas ou de visoes derivadas do mesmo schema principal.
Isso dificulta:
- governanca
- evolucao em paralelo
- isolamento de responsabilidades
3.2 Modulos maiores que seus contextos¶
Especialmente no caso de admin, o componente atual parece concentrar mais responsabilidades do que seria desejavel em um desenho orientado a dominios.
3.3 Dependencia de leitura cruzada como base do modelo¶
O uso recorrente de ToView ou referencias cruzadas mostra que varios componentes dependem do mesmo modelo estrutural para operar.
Isso pode ser util como transicao, mas nao e uma boa base permanente para SaaS governavel.
3.4 Risco de confundir experiencia com dominio¶
Se portal estiver centralizando regra de negocio ou ownership de dados, isso reforca um problema conceitual:
- interface ou experiencia de uso nao deve definir o dominio do produto
4. Convergencia com a macro-organizacao proposta¶
4.1 Direcao geral¶
O caminho mais coerente nao parece ser:
- recomeçar tudo do zero
Tambem nao parece ser:
- manter os componentes atuais como estao e apenas reorganizar nomes
A direcao mais defensavel e:
reaproveitar onde ja existe nucleo de negocio clarorefatorar onde ha acoplamento estrutural forteextrair responsabilidades onde o componente atual esta largo demaisreposicionar portais como camada de experiencia
4.2 Leitura por componente¶
| Componente atual | Leitura frente a proposta | Direcao recomendada |
|---|---|---|
API Admin |
concentrador de responsabilidades heterogeneas | extrair e redistribuir responsabilidades |
API Pagamento |
nucleo operacional de desembolso com forte acoplamento estrutural | reaproveitar com refatoracao significativa |
API Prestacao de Contas |
mais proximo de um bounded context proprio | evoluir como frente de negocio mais autonoma |
API Portal |
provavel camada de experiencia misturada com regra | reposicionar como experiencia/BFF, nao como dominio |
5. Recomendacoes objetivas¶
5.1 API Admin¶
Nao deve permanecer como dono central do modelo de negocio.
A recomendacao e usar esse componente como fonte de:
- regras reaproveitaveis
- cadastros e referenciais a redistribuir
- insumos para futura definicao de ownership
5.2 API Pagamento¶
Pode continuar relevante no dominio Finance and Disbursements, principalmente onde ja existe logica de:
- remessa
- folha
- liberacao
- processamento operacional
Mas precisa reduzir dependencia estrutural do schema compartilhado.
5.3 API Prestacao de Contas¶
E o melhor candidato atual para evolucao como contexto mais autonomo.
Sua estrutura esta mais alinhada ao tipo de fronteira que a proposta macro sugere.
5.4 API Portal¶
Deve ser avaliada principalmente como:
- camada de experiencia
- composicao
- adaptacao por perfil ou canal
Nao como dono principal de dominio.
6. Implicacoes para dados e governance¶
O problema atual nao e apenas quantos repositorios existem.
O problema central e a combinacao de:
- schema principal compartilhado
- ownership difuso
- multiplos times alterando a mesma base
- fronteiras fracas entre leitura e escrita
Para convergir com a proposta macro, sera necessario discutir na proxima etapa:
- ownership logico de dados por contexto
- quem escreve cada agregado
- quem apenas referencia
- como suportar leitura cross-domain sem posse compartilhada do mesmo agregado
Isso nao obriga imediatamente um banco fisico por servico.
Mas exige, no minimo, ownership logico muito mais claro.
7. Proximo passo recomendado¶
Depois da validacao da proposta macro pelo time, os artefatos mais uteis para seguir sao:
candidate bounded contextsownership map de dadoscurrent-to-target mappingdecisao por componente: adapt, extract, replace