The node's runtime is its modules' bus: it binds each module's consumer and hands its events to the bundle (hq ADR 0198)
A launched bundle's mesh/subscribe binds the module's own durable consumer — EVENTS, <node>_<module>, by name as the module's own runtime bound it, so nothing is lost or replayed in the move — and every event goes to each child of the module that subscribed as mesh/event, acknowledged only when all answered, negatively acknowledged after a short delay when one failed or died, terminated when it is not an event. mesh/ask calls a tool as the module. Every launched bundle is started again when it exits, with backoff, since long-running code waits for no call. Requires SDK 0.1.6.
This commit is contained in:
+7
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env node
|
||||
// A long-running bundle that keeps exiting (novox/hq ADR 0198): the runtime starts it again each time.
|
||||
import { appendFileSync } from "node:fs";
|
||||
import { serveStdio } from "@novox/mesh-sdk/stdio";
|
||||
appendFileSync(process.env.FLAKY_LOG, "started\n");
|
||||
setTimeout(() => process.exit(3), 300);
|
||||
await serveStdio("flaky", []);
|
||||
Reference in New Issue
Block a user