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.
8 lines
341 B
JavaScript
Executable File
8 lines
341 B
JavaScript
Executable File
#!/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", []);
|