Say the node tools are there, every minute (hq to-be 45 Phase 1, S11)

A machine whose node-engine is heard and whose runtime is gone is a
machine nobody can ask anything, and nothing said so. The runtime now
says on mesh.control.<node>.tools-alive, every minute, that it is there,
with its interval and build; the controller raises tools-silent after
three missed. Core NATS, like the host's heartbeat: a lost one is the
next one. A heartbeat the bus refuses is logged when that starts and
when it stops.
This commit is contained in:
jochen
2026-10-06 10:06:29 +02:00
parent 730b4047f0
commit 0307df0850
4 changed files with 165 additions and 0 deletions
+3
View File
@@ -628,6 +628,9 @@ func (c *Conn) PublishAs(module string, env Envelope) error {
return err
}
// Say publishes one message on core NATS, kept by nobody: a heartbeat, whose loss is the next one.
func (c *Conn) Say(subject string, body []byte) error { return c.nc.Publish(subject, body) }
// ServedOn is where a served module's tool is answered right now: the membership's subjects when
// issued, the derived shape otherwise — what Handle subscribes, for what announces it (ADR 0197).
func (c *Conn) ServedOn(module, tool string) []Served { return c.servedOn(module, tool) }