Add fleet control: service configs, replica floors, monitor, pause/restart
Some checks are pending
offline / test (push) Waiting to run

Central fleet.json sets min/max copies. Tree-node keepFloor respawns
until three healthy unpaused replicas remain. CLI and loopback UI
pause, resume, stop, and restart instances that fail health checks.
This commit is contained in:
George Lambert 2026-09-11 13:09:55 -04:00
parent f3dc0e6eee
commit dd99ce1c64
33 changed files with 1368 additions and 0 deletions

View file

@ -0,0 +1,21 @@
# Fleet: replica floors, monitor, pause, restart
Runtime copies of middleware workers, WORM archives, and **tree nodes** are declared in `packages/verae-fleet/fleet.json` (how many) and `packages/verae-fleet/services/*.json` (how each one runs).
```text
operator --HTTP 127.0.0.1:3850--> fleet control
| spawn workers with /health
tree-node min=3 keepFloor |
archive-worm min=3 |
paused ≠ available |
unhealthy → restart v
replicas on loopback health ports
```
- **list**`node src/cli.js list`
- **monitor**`serve` probes `/health` and reconciles
- **restart** — crash or 503 → same instance id respawned
- **pause / off** — pause does not count toward `min`; keepFloor starts another tree-node. `stop` on a service disables it.
- **tree-node floor**`fleet.json` `tree-node.min` (default 3). Do not drop this without changing the spec; bulk-summary leaf queries need several bloom-filtered nodes.
Zapier cloud is not spawned. NATS is monitored, not bound publicly.

View file

@ -34,6 +34,7 @@ Zapier cloud **never** connects to NATS. Only middleware workers and archives do
| archive-worm | `verae-archive-worm` | N copies | `verae.archive.query`, `verae.archive.put` | `verae.archive.reply.<id>` if bloom hits |
| tree-node | `verae-tree-node` | N copies (WORM role) | `verae.archive.query`, `verae.archive.put` kind `tree` | `verae.archive.reply.<id>` if bloom hits |
| zapier-simulator | `verae-zapier-simulator` | Local HTTP :3847 | operator browser | in-process replay of all addresses |
| fleet | `verae-fleet` | Local HTTP :3850 | operator | spawns workers; keepFloor on tree-node |
| zapier-user-docs | `zapier-user-docs` | Static | — | catalog `/user-docs/` |
| verae-chain-client | `verae-chain-client` | Library | — | HTTPS `api.veraetime.net` or MOCK |
| docs-master | `zapier-docs-master` | Static | — | published on zapier.georgelambert.org |