Arquitetura e fronteira Community¶
A arquitetura open-core separa uma fundação Community executável das capacidades privadas que a edição Enterprise adiciona. A dependência segue uma direção única:
Enterprise → Community
O Community nunca precisa do código Enterprise para compilar, iniciar ou executar seus workflows.
Componentes publicáveis¶
| Componente | Papel |
|---|---|
| Backend Community | Aplicação Java 21/Spring Boot com modelo, persistência, rotinas, serviços, APIs e execução síncrona |
| Front Community | SPA Vue/Vite separada do backend, com páginas e componentes da edição aberta |
| Runtime Info | Contrato público carregado antes do login para identificar edição e opções realmente selecionáveis |
| Documentação | Jornadas, dados, referências e troubleshooting ligados à versão publicada |
Backend e front são construídos separadamente. O backend não incorpora o
código-fonte ou o dist da SPA no repositório; o empacotamento de release
combina artefatos compatíveis em uma etapa própria.
Descoberta de capacidades¶
A edição não é escolhida por uma variável genérica. O runtime é determinado pelos artefatos e implementações presentes.
O front consulta Runtime Info antes de montar a aplicação:
- listas
available...contêm somente opções executáveis no runtime atual; - catálogos
...Optionspodem mostrar capacidades Enterprise bloqueadas para explicar o caminho de evolução; - uma opção bloqueada nunca habilita chamada, rota ou componente Enterprise no bundle Community.
Essa regra evita que a tela ofereça um modelo de forecast ou um modo de Supply Planning que o backend não consegue executar.
Fronteira funcional¶
| Área | Community | Enterprise |
|---|---|---|
| Demand Planning | modelos estatísticos clássicos, sell-out, splits históricos e Planning Book material-location | modelos e tratamentos avançados, AutoFit privado, sell-in, Sales Orders, colaboração e agregações avançadas |
| Supply Planning | motor heurístico, fair share, plano restrito e Planning Book material-location | optimizer, process chain, restrições e modelos avançados |
| Dados | material, location, UOM, sell-out, estoque, malha e produção necessários aos workflows Community | documentos, custos, finanças, GIS e famílias específicas das capacidades privadas |
| Execução | chamadas síncronas e histórico de processo | filas, workers, batch e execução distribuída |
| Segurança | login simples, senha com hash e administração básica | SSO e políticas avançadas |
| Experiência | páginas Community e itens Enterprise claramente bloqueados | rotas, componentes e ações das capacidades privadas |
O catálogo de dados documenta a plataforma completa e qualifica contratos que podem variar por edição. A disponibilidade efetiva deve sempre ser confirmada pelo Runtime Info e pela documentação da release.
Persistência e operação¶
O backend Community foi desenhado para trabalhar com bancos relacionais suportados pela edição aberta. Configuração de conexão, migração de schema, compatibilidade e backup serão publicados por versão; não use exemplos de desenvolvimento como contrato de produção.
Execuções Community são síncronas. A interface precisa mostrar aceite, conclusão ou falha sem pressupor uma fila privada. Quando uma capacidade Enterprise não está presente, o backend deve rejeitar a solicitação com erro claro em vez de simular sucesso.
Extensão sem dependência reversa¶
Pontos de extensão existem somente onde o núcleo precisa delegar uma capacidade opcional. O Enterprise fornece a implementação real e pode enriquecer o resultado Community; não substitui o núcleo por services vazios ou por uma segunda cópia completa do mesmo processo.
Essa disciplina produz três propriedades importantes:
- o Community continua compreensível e executável sozinho;
- a edição privada reaproveita modelo, validações e cálculo compartilhados;
- a documentação consegue explicar uma base comum sem esconder diferenças de edição.
Continue no primeiro workflow de planejamento.