The Control-Feedback Loop is how a CAT Node operationalizes its Architectural Quantum as a Minimal Federated Operating Model. The Ordering of Execution that is Invoiced into a Bill-Of-Materials loop is the Node's runtime realization of the Quantum Architecture Description in the README Function / Process / InfraFunction and Structure / Plant / InfraStructure are independently content-addressed halves of one deployable Data Product unit.
- The "Architectural Quantum" is a Minimal Federated Operating Model that adheres to Domain-Driven Design principles
- The "Node" consumes an "Order" containing an input "Invoice" of input data to be processed as well as the Architectural Quantum's functional domain components that process Invoiced data; The content of the Order CID to be processed by the Node's "Factory" consists of the following: (*)
- A. the CID-ed input Invoice as is within
data/input/data/* - B. the CID-ed Architectural Quantum's functional domain components:
- a. "Function [FaaS]" consists of "Process [Composed Function]" and "InfraFunction [Actuator]" as its dependency
- Function [FaaS] (as Code) is CID-ed for which the contents consist of CIDs for Process [Composed Function] and InfraFunction [Actuator]
- Process [Composed Function] is the composed callable graph (FaaS-composer analogue): transport port callables (ingress, integration_cache, egress — each receives Function-owned
TransportPort) plus a Transfer Higher-Order Function / tHOF (integrated_subproc— Plant-agnosticComputePort.run_transfer; this demo’s Structure wiresRayComputePortin the job entrypoint). Process itself is the composition, not a tHOF and not the notebook UI; peering mutate is Structure TF (ipfs_transport_peering/TransportContext.ensure_peered), not Process heal. Orders are authored via the REPLaC (REPL as Code) Workflow UI of Function [FaaS] (this demo: Marimo). Compose with named imports of the Process public surface only (neverimport *).
- b. "Structure [PaaS]" is Function's infrastructure dependency and consists of "Plant [SaaS]" and Plant's "InfraStructure [IaaS]" infrastructure dependency
- Structure [PaaS] (as Code) is CID-ed for which the contents consist of Plant [SaaS] and InfraStructure [IaaS] CIDs
- a. "Function [FaaS]" consists of "Process [Composed Function]" and "InfraFunction [Actuator]" as its dependency
- A. the CID-ed input Invoice as is within
- The Node's "Factory" processes an Order to produce "Executor" of an Architectural Quantum by composing Function [FaaS], constructing Structure [PaaS], then instantiating Executors with Function [FaaS] & Structure [PaaS] as its dependencies / parameters
- The Executor is a composition of Architectural Quantum execution that executes and Invoices the ephemeral execution of the Architectural Quantum.
- A. the Executor executes the aforemention composition as a Function [FaaS] executing on Structure [PaaS]: transport port callables run locally with a narrowed
TransportPort; InfraFunction [Actuator] dispatches the tHOF onto Plant viaPlantPort(Plant.plant_port()→RayPlantPortfor this demo) with scratch viaObjectStore/JobHandle; in-job entrypoint wiresComputePort - B. the Executor Invoices the ephemeral execution of the Architectural Quantum by producing a CID-ed Invoice containing the original CID-ed Order, the CID-ed output Data (
data_cid), interim stage CIDs (ingress_data_cid,integration_data_cid), and a (non-deterministic processing) Seed (Function/Process replay dictionary) — Seed is specified but not yet populated (seed_cidremains null; tracked by #187); stage CIDs on the Invoice are the interim feedback surface
- A. the Executor executes the aforemention composition as a Function [FaaS] executing on Structure [PaaS]: transport port callables run locally with a narrowed
- The Node produces a CID-ed BOM containing an CID-ed Invoice (with
structure_as_executed_cidnesting observed Plant / ObjectStore state), CID-ed Executor execution "logs", andnode_uri(*). Full Nest tree:BOM.mdCAT Node HTTP BOM response.
- 2. The Order is intended to be consumed from within a "BOM" hosted on a registry; i.e. - discovered via that BOM's "invoice.order_cid" - rather than supplied out-of-band; this registry is not yet implemented, such that the Node's
/cat/node/initendpoint accepts the targetorder_ciddirectly as input today, standing in for the not-yet-built "look up a BOM on the registry, then consume its Order" step - 4B. Until Seed exists, compose on the Order CID graph and feedback via Invoice/BOM stage CIDs; when Seed lands, it holds the Function/Process replay dictionary and Invoice keeps Order + output data +
seed_cid - 5. CIDs of BOMs are intended to be published to the registry (0c) for future Orders to be consumed from
