Extensibilidade governada
Adapte o produto sem romper sua capacidade de evoluir.
A TOTVS Apps separa configuração de extensão para que necessidades específicas sejam atendidas com contratos claros. O objetivo é preservar integridade, segurança e atualização do produto padrão enquanto cada contexto de negócio ganha flexibilidade.
- Contratos explícitos
- Baixo acoplamento
- Evolução preservada
Uma decisão arquitetural
Personalizar quando o caminho existe. Customizar quando um novo caminho é necessário.
A escolha define quanto controle o produto mantém sobre a execução e qual nível de governança será necessário para proteger dados, fluxos e atualizações futuras.
Menor complexidade
Personalização
Parâmetros, opções e interfaces alteram processos e comportamentos já previstos pelo produto.
- Os caminhos possíveis permanecem codificados e conhecidos.
- O domínio pode ser testado com maior profundidade.
- A atualização do produto tende a ser mais simples.
Maior flexibilidade
Customização
Extensões acrescentam ou substituem partes do fluxo por meio de contratos definidos com o software base.
- Novos caminhos de execução passam a existir fora do núcleo.
- Contratos delimitam dados, responsabilidades e comportamento.
- Integridade e compatibilidade exigem controles adicionais.
Critério de decisão
Comece pela alternativa de menor acoplamento.
Uma extensão não deve ser a primeira resposta. A sequência abaixo ajuda times de produto, arquitetura e segurança a buscar flexibilidade sem criar dívida desnecessária.
Configurar
Verifique se parâmetros ou opções existentes já atendem a variação do processo.
Compor
Use APIs e eventos existentes para conectar capacidades sem alterar o núcleo.
Estender
Adicione comportamento específico por um contrato explícito e versionável.
Governar
Defina propriedade, observabilidade, segurança, limites e estratégia de evolução.
Técnicas disponíveis
Três formas de atender o específico mantendo fronteiras claras.
Cada técnica resolve uma categoria distinta de necessidade e deve ser combinada com validações adequadas ao impacto no processo de negócio.
Campos personalizados
Permitem registrar metadados específicos em entidades de domínio e controlar onde essas informações são consultadas ou exibidas.
- Preserva a entidade padrão.
- Adiciona contexto sem criar um novo fluxo.
- Exige regras claras de tipo, acesso e consulta.
Desvio de fluxo
Permite interferir em fases e decisões do ciclo de um processo, usando webhooks para desacoplar o comportamento específico.
- Explicita pontos de extensão.
- Evita incorporar regras particulares ao núcleo.
- Precisa tratar tempo de resposta, falha e repetição.
Interferência de negócio
Executa cálculos ou operações específicas a partir de entradas e saídas previstas em contrato, com isolamento por funções como serviço (FaaS).
- Encapsula regras particulares.
- Mantém entradas e resultados verificáveis.
- Demanda limites de execução, segurança e observabilidade.
Checklist de governança
Antes de integrar uma extensão, torne o contrato verificável.
Os itens abaixo traduzem segurança e conformidade em perguntas que podem ser respondidas durante o desenho e a revisão técnica.
- Fronteira: quais dados, eventos e operações ficam disponíveis para a extensão?
- Identidade: como autenticação, autorização e segregação serão aplicadas?
- Resiliência: o que acontece em caso de indisponibilidade, atraso, repetição ou resposta inválida?
- Evolução: como contrato, versão e compatibilidade serão mantidos ao longo das atualizações?
- Observabilidade: quais logs, métricas, correlações e alertas permitirão acompanhar o comportamento?
- Responsabilidade: qual time responde pelo ciclo de vida, suporte e correção da extensão?
Decisão conectada
Valide a extensão contra as capacidades da plataforma.
Uma boa customização preserva confiabilidade, abertura e crescimento. Use as três forças como critérios de arquitetura antes de avançar.