Arquitetura
O Converged foi projetado como uma plataforma modular, mas não como uma coleção caótica de microserviços. A separação é simples: a interface mostra dados e lança ações, Runtime executa processos, microserviços possuem dados, e adaptadores conectam equipamentos e sistemas externos.
Usuário / cliente
↓
UI e micro-frontends
↓
Runtime: workflows, cron, integrações, ações de IA
↓
Microserviços: APIs tipadas e dados próprios
↓
Storage / Behemoth / arquivos / SQL / KV / métricas
↓
Equipamentos, mensageiros, pagamentos e serviços externos
Os microserviços permanecem deliberadamente finos. Cada serviço responde por sua área de dados, validação e API tipada. Ele não deve conhecer a lógica interna de serviços vizinhos nem se transformar em um centro oculto de processos de negócio. Isso reduz acoplamento e torna o sistema mais simples de manter.
Toda a lógica transversal é movida para o Runtime. Se o sistema precisa aceitar um pedido, consultar vários serviços, criar uma tarefa, enviar uma notificação, esperar um evento e atualizar o status, isso é executado em um workflow. O Runtime não armazena estado persistente por conta própria: ele grava histórico, variáveis e resultados por meio dos serviços que possuem seus próprios stores.
O armazenamento é construído em torno de isolamento. Em vez de uma base compartilhada, cada domínio recebe seus próprios limites de dados: SQL, key-value, arquivos, dados colunares, índices vetoriais ou relações de grafo quando necessário. Esse modelo ajuda a mover workspaces, limitar acesso e evitar uma base comum onde dados de clientes diferentes se misturam.
O frontend também é modular. A shell comum carrega micro-frontends independentes por import map, então áreas individuais da interface podem evoluir sem recompilar todo o produto. Para o usuário continua sendo um único sistema; para o desenvolvimento, um conjunto de zonas claras de responsabilidade.