CASE DE EVIDÊNCIA
Ajuste das fronteiras de Contracts sem distribuir a arquitetura
Uma revisão real de Contracts no STRATA usou o pack completo de Architecture & Engineering para preservar um monólito modular justificado, inverter uma dependência de persistência, centralizar a legalidade do lifecycle, documentar a decisão e integrar a correção como um refactor delimitado e verificado.
01
Problema
Corrigir ownership e drift de regra de lifecycle em uma slice ativa de Contracts sem adicionar serviço de rede, migration, nova UI, serviço de replacement ou framework transacional especulativo.
02
Métodos aplicados
- 01Escolha de Arquitetura de AplicaçãoTransforma a topologia arquitetural em uma decisão rastreável de trade-offs e evita complexidade distribuída sem requisito demonstrado.
- 02Desenho de Limites de SoftwareReduz acoplamento de mudança e mantém consumidores dependentes de capacidades estáveis em vez de detalhes de implementação.
- 03Documentação de Decisões de ArquiteturaPreserva a justificativa de decisões caras para que mudanças futuras avaliem os trade-offs originais em vez de reabrir a discussão pela memória.
- 04Planejamento de Refactors SegurosReduz o blast radius de refactors enquanto mantém o sistema publicável e torna o progresso estrutural observável em cada fatia.
Registro de decisões
- 01
Manter a arquitetura menos distribuída que atende às forças reais
Preservar o monólito modular existente em Next.js + Prisma porque isolamento por tenant, consistência de lifecycle e invariantes transacionais não exigiam um serviço com deploy independente.
- 02
Fazer a feature ser dona do contrato de leitura
Mover os tipos estreitos de source do read model para Contracts para que o repository Prisma satisfaça esse contrato, em vez de exportar payloads de persistência para cima.
- 03
Colocar a legalidade de replacement no domínio
Definir a elegibilidade de replacement uma única vez na status policy canônica e fazer presentation delegar a ela, sem duplicar a semântica FINALIZED/SENT.
- 04
Refatorar apenas a seam comprovada
Usar dois contratos RED de arquitetura e uma follow-up de seis arquivos, adiando explicitamente uma abstração genérica de retry até existir uma segunda operação real com a mesma semântica.
03
Verificação
Trate este relatório como evidência dos métodos e da verificação mostrados aqui. A sobreposição com um pack, sozinha, não prova que o pack foi usado ou validado por completo.
04
Resultado
- 01
O read model de Contracts deixou de importar tipos de implementação do server repository.
- 02
O repository mantém os selects Prisma privados enquanto satisfaz contratos de source pertencentes à feature.
- 03
A elegibilidade de replacement passou a pertencer à policy canônica do domínio de Contracts.
- 04
A follow-up delimitada passou 376/376 testes, typecheck, lint, formatação, dependency audit e CI pós-merge na main.
- 05
Os quatro métodos de Architecture & Engineering influenciaram materialmente a mudança externa revisada e mergeada.