Seleção de arquitetura e verificações de conformidade
Traduzir metas em comportamento observável
Identifique atores, fluxos de trabalho críticos, propriedade de dados e restrições. Converta “escalável”, “seguro” e “manutenível” em cenários: estímulo → ambiente → resposta → medida. Classifique as poucas características que determinam materialmente o design. Diferencie restrições obrigatórias de preferências.
Procedimento
- Defina cenários de qualidade e limites de aceitação com as partes interessadas. Especifique carga de trabalho, falha e suposições da equipe. Use seleção.
- Identifique o escopo em que cada propriedade deve ser válida: componente, implantação, fluxo de trabalho ou sistema inteiro. Diferentes partes podem justificar estilos diferentes.
- Compare um pequeno conjunto de estilos viáveis em relação a esses cenários, incluindo uma implantação modular única. Explique o mecanismo que sustenta cada benefício alegado.
- Examine o acoplamento: dependências de código-fonte, chamadas em tempo de execução, dados compartilhados e mudanças coordenadas. Independência de módulo estática não prova isolamento de falhas em tempo de execução.
- Escolha o estilo viável mais simples e registre um ADR, consequências e um gatilho para reconsideração. Mantenha detalhes de implementação reversíveis separados de compromissos estruturais custosos.
- Transforme decisões críticas em verificações de conformidade: dependências proibidas, compatibilidade de contratos, orçamentos de latência, tempo de restauração e isolamento de inquilinos. Use verificações de conformidade.
- Reavalie sob carga observada e padrões de mudança. Uma regra de dependência aprovada é evidência de uma propriedade, não de qualidade geral da arquitetura.
Perguntas de revisão
- Um limite de plug-in resolve necessidades reais de extensibilidade sem conceder a cada plug-in acesso irrestrito ao núcleo?
- Os eventos precisam de publicação durável, compatibilidade de esquema, deduplicação e monitoramento de latência? Esses custos estão incluídos na proposta orientada a eventos?
- A implantação separada melhora um gargalo medido ou uma restrição de lançamento?
- A equipe proposta consegue operar a complexidade de implantação e falha resultante?
- Qual invariante se torna mais difícil quando a propriedade dos dados se divide?
Saída
Retorne cenários de qualidade, mecanismos candidatos/trade-offs, estrutura escolhida, mapa de propriedade/dependência, ADR, verificações de conformidade e suposições não resolvidas.
Escopo e referências
Cobertura parcial alinhada com Fundamentals of Software Architecture, 2ª ed. (Richards e Ford). Material dos autores, uma transcrição de entrevista pública dos autores, conteúdo da editora e documentação de teste de arquitetura fundamentam este guia original. Consulte fontes. Nenhum estilo é um estágio de maturidade universal.