The control plane serves and pushes on the bus it is told to #103

Merged
jschoubben merged 1 commits from feat/the-controller-serves-on-nats into main 2026-09-27 23:30:52 +00:00
Owner

The seams were there and nothing chose a side: serve, push, ask and build all opened the old bus's connection and declared over its channel, whatever MESH_BUS_NATS said. So the switch moved every host and left the control plane unable to follow — "this control plane has no MESH_BROKER_AMQP" with the new bus named and standing (2026-09-28). That was design 28 task 4.3, still open.

One place now decides: connectLink reads the switch, refuses both buses named at once, raises the new bus's streams and this controller's consumers when handed the inventory, and opens the link over whichever bus it is on. Every caller that sent a declaration or asked a tool through the old channel goes through the server's Bus() instead. OverNats is that outbound: a declaration is a JetStream publish into the node's own subject; an event is announced on the subject its name derives to; a tool is request and reply on the module's tool subject.

link, broker and command packages green on a fresh NATS and the store.

The seams were there and nothing chose a side: `serve`, `push`, `ask` and `build` all opened the old bus's connection and declared over its channel, whatever `MESH_BUS_NATS` said. So the switch moved every host and left the control plane unable to follow — "this control plane has no MESH_BROKER_AMQP" with the new bus named and standing (2026-09-28). That was design 28 task 4.3, still open. One place now decides: `connectLink` reads the switch, refuses both buses named at once, raises the new bus's streams and this controller's consumers when handed the inventory, and opens the link over whichever bus it is on. Every caller that sent a declaration or asked a tool through the old channel goes through the server's `Bus()` instead. `OverNats` is that outbound: a declaration is a JetStream publish into the node's own subject; an event is announced on the subject its name derives to; a tool is request and reply on the module's tool subject. link, broker and command packages green on a fresh NATS and the store.
jschoubben added 1 commit 2026-09-27 23:30:38 +00:00
The seams were there and nothing chose a side: serve, push, ask and build all
opened the old bus's connection and declared over its channel, whatever
MESH_BUS_NATS said. So the switch moved every host and left the control plane
unable to follow — "this control plane has no MESH_BROKER_AMQP" with the new bus
named and standing (2026-09-28). That was task 4.3 of design 28, still open.

One place now decides: connectLink reads the switch, refuses both buses named at
once, raises the new bus's streams and this controller's consumers when it is
handed the inventory, and opens the link over whichever bus it is on. Every
caller that sent a declaration or asked a tool through the old channel goes
through the server's bus instead, which the new transport has and the channel is
not. OverNats is that outbound: a declaration is a JetStream publish into the
node's own subject, an event is announced on the subject its name derives to, a
tool is request and reply on the module's tool subject.
jschoubben merged commit c37018fdd2 into main 2026-09-27 23:30:52 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-controller#103