Fundamentos de arquitetura
Decisões técnicas com contexto, princípios e referências.
Esta biblioteca reúne o embasamento usado na construção da TOTVS Apps e de suas aplicações. É um material de aprofundamento para arquitetos e times técnicos que precisam conectar escolhas de implementação às capacidades da plataforma.
Material de aprofundamento
Use esta página depois de entender o que a plataforma entrega.
Se o objetivo é avaliar benefícios e compromissos, comece por Capacidades. As referências abaixo ajudam a compreender os conceitos, práticas e padrões que sustentam essas capacidades.
Arquiteturas evolucionárias¶
Uma arquitetura evolucionária permite que arquitetos e desenvolvedores façam mudanças relevantes com confiança, sem depender de previsões perfeitas sobre o futuro. Ela combina mecanismos de avaliação, mudança incremental e limites de acoplamento para preservar a capacidade de evolução.
- Funções de aptidão: avaliações objetivas da integridade de características arquiteturais;
- Mudança incremental: evolução guiada em diferentes dimensões, com impacto controlado;
- Acoplamento apropriado: identificação das relações que devem permanecer juntas e das que precisam evoluir de forma independente;
- Dados evolucionários: capacidade de desenvolver estruturas de dados conforme requisitos mudam;
- Reconhecimento de antipadrões: identificação de acoplamentos que restringem evolução, teste ou entrega.
Cloud Native¶
Aplicações cloud-native são construídas para execução distribuída, automação, resiliência e evolução frequente. Na plataforma, esse modelo se materializa nos conceitos abaixo.
-
Unidades padronizadas que empacotam software e dependências para execução consistente entre ambientes.
-
Serviços implantáveis de forma independente, organizados por capacidades de negócio, pertencentes a times pequenos e desenhados com baixo acoplamento, manutenibilidade e testabilidade.
-
Infraestrutura de software que trata comunicação entre serviços, acrescentando entrega confiável, segurança, visibilidade e mecanismos de controle.
-
Contratos que descrevem o estado ou resultado desejado e reduzem a necessidade de coordenar detalhes imperativos entre consumidores e provedores.
-
Modelo em que mudanças geram uma nova versão da infraestrutura, construída a partir de código e automação, em vez de alterações locais em produção.
Princípios e práticas¶
Princípios mantêm a arquitetura reconhecível e dão critérios para revisar decisões ao longo do ciclo de vida do software.
-
Separação de responsabilidades entre camadas e blocos, protegendo o domínio de detalhes externos.

-
Mantém o foco no coração do negócio, aproxima a linguagem do software da linguagem usada pelas pessoas e representa complexidade em modelos de domínio.
-
Explicita compromissos entre consistência, disponibilidade e tolerância a partições em sistemas distribuídos.
-
Princípios de design que apoiam responsabilidade, extensibilidade, substituição, contratos focados e inversão de dependências.
-
Práticas para aplicações portáveis, automatizáveis e adequadas a ambientes cloud-native.
-
Práticas que conectam desenvolvimento e operação para reduzir o ciclo de entrega e sustentar mudanças frequentes com qualidade.

Estilos e padrões¶
Padrões tornam decisões recorrentes mais explícitas e ajudam times a discutir alternativas usando uma linguagem comum.
-
Estratégias para implementação do núcleo do domínio de negócio.
-
Application Infrastructure Patterns
Funcionalidades intermediárias que apoiam a implementação das regras de negócio.
-
Capacidades básicas necessárias ao funcionamento consistente de microsserviços.
Da referência à decisão
Use fundamentos para tornar trade-offs explícitos.
Retorne às capacidades para conectar essas referências aos resultados esperados ou revise as formas de extensão para aplicar contratos e limites na prática.