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.
3.8 KiB
3.8 KiB
Modules and NATS message contracts
Master map of every service in the Zapier ↔ middleware ↔ chain ↔ WORM-archive path.
Zapier cloud never connects to NATS. Only middleware workers and archives do.
Who talks to whom (HTTPS vs NATS)
[Zapier Platform app] HTTPS [zappier-edge] HTTPS [middleware-http]
|
NATS JetStream (NS1 loopback :4222) |
+------------------+------------------+-------------+
| | |
[job-poller] [webhook-deliver] [archive-aggregator]
| |
| HTTPS | NATS query/reply
[verae-chain-client] |
[archive-worm × N]
bloom miss = silence
Module catalog
| Module | Repo (Forgejo) | Runtime | Listens | Sends |
|---|---|---|---|---|
| zapier-platform-app | verae-zapier-app |
Zapier cloud | User Zap steps | HTTPS to zappier-edge |
| zappier-edge | zappier-edge |
Public HTTPS :3000 | Zapier, portal, admin | HTTPS to middleware |
| middleware-http | verae-middleware |
Public HTTPS :3100 | zappier-edge | NATS jobs.watch; HTTP to chain; wait on jobs.events |
| job-poller | verae-job-poller |
Worker | verae.zapier.jobs.watch |
verae.zapier.jobs.events; HTTP GET chain status |
| webhook-deliver | verae-webhook-deliver |
Worker | verae.zapier.webhooks.deliver + events |
HTTPS POST Zapier REST Hook |
| request-splitter | verae-request-splitter |
In middleware | HTTP body / multipart | chain hash; verae.archive.put |
| archive-aggregator | verae-archive-aggregator |
Worker / in wait | includeAttached on wait |
verae.archive.query; reads verae.archive.reply.<id> |
| 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 |
Addresses (subjects)
| Address | Kind | Payload (required fields) |
|---|---|---|
verae.zapier.jobs.watch |
JetStream work queue | tenantId, jobId, tokenRef, enqueuedAt, attempt, maxAttempts, intervalMs, traceId |
verae.zapier.jobs.events |
JetStream events | event (timestamp.completed|failed|timeout), tenantId, jobId, status, traceId, emittedAt |
verae.zapier.webhooks.deliver |
JetStream work queue | hookId, tenantId, targetUrl, event, payload, attempt, traceId |
verae.zapier.usage |
optional | tenantId, action, amount, at |
verae.archive.put |
JetStream | sha256, tenantId, kind (publicMeta|privateMeta|file|tree), record, traceId |
verae.archive.query |
pub to all archives | correlationId, sha256, tenantId, kinds[], traceId |
verae.archive.reply.<correlationId> |
replies | archiveId, sha256, records[], traceId |
Completed job JSON (back to Zapier)
See docs/02-architecture/archive-nats.md. Seal receipts from chain; extra receipts and files[] from archive aggregation when includeAttached is true.