Controller, Ports e WeaveGraph
Regra fundamental do sistema:
1 Controller ativo equivale a 1 grafo lógico.
Essa regra garante autoridade única, previsibilidade e comportamento determinístico da rede.
WeaveGraph
O WeaveGraph é uma estrutura exclusivamente de runtime.
Ele existe apenas enquanto a rede está ativa e serve para:
- conter nós e links atualmente conectados
- manter estado transitório do scheduler
- armazenar filas temporárias e caches de execução
O WeaveGraph:
- pode ser destruído e reconstruído a qualquer momento
- não armazena configuração persistida
- não define comportamento permanente da rede
Nenhuma configuração crítica deve depender da existência contínua do grafo.
Weave Controller
O Weave Controller é o cérebro da rede.
Ele é responsável por:
- coordenar canais
- avaliar regras
- executar decisões globais
- processar transferências lógicas
O Controller persiste em NBT:
- controllerId (UUID)
- estado ACTIVE
- configuração global da rede
- Core inserido
- upgrades instalados, quando existirem
Alterar o estado ACTIVE não destrói o grafo.
Apenas pausa ou retoma o processamento da rede.
Ao quebrar o Controller:
- o próprio bloco é dropado
- o NBT é preservado
- toda a configuração global é mantida
Persistência do Weave Controller
Quando o Controller é removido do mundo, seu estado completo é preservado.
Isso inclui:
- Core instalado
- configurações globais da rede
- upgrades aplicados
Ao ser recolocado:
- o estado é restaurado integralmente
- as Ports tentam reassociação usando
lastKnownControllerId - o WeaveGraph é reconstruído em runtime
Importante
O WeaveGraph não é persistido.
Ele é uma estrutura de execução, não de configuração.
Essa decisão existe para:
- evitar punição excessiva ao jogador
- permitir mover e reorganizar redes grandes
- manter previsibilidade e segurança
Weave Ports
As Ports são sensores e atuadores locais da rede.
Elas:
- não armazenam recursos
- não tomam decisões globa