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
Preserve o padrãoEvite alterações internas que dificultam atualização e suporte.
Isole o específicoContratos delimitam responsabilidades e reduzem impacto.
Escolha com intençãoUse a técnica menos invasiva capaz de atender a necessidade.

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.

1

Configurar

Verifique se parâmetros ou opções existentes já atendem a variação do processo.

2

Compor

Use APIs e eventos existentes para conectar capacidades sem alterar o núcleo.

3

Estender

Adicione comportamento específico por um contrato explícito e versionável.

4

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.