- 33RPC variants in the vector store's service API
- 6families they fall into, search among them
- 3encodings across the fabric's links
One wire for requests and vectors
Inference Fabric's Vector Shard Manager needed a wire that carries small structured requests and large binary vector payloads in the same frame. I chose CBOR, length-prefixed over TCP to mirror the framing of the fabric's broker protocol, through the ciborium Rust library.
Specs that are the same bytes everywhere
Inference Fabric also runs hidden-state extraction, and each run is described by a spec that tells the GPU worker which layer's states to capture and how. Producers attach the spec to every work item and the broker carries it opaquely.
I wanted two equal specs to be the same bytes wherever they were produced, so the spec is encoded as canonical, deterministic CBOR, and the mining tables store spec identifiers derived from that encoding.
equal values are not promised equal bytes, so the identifiers can split
one spec identifier in the mining tables, wherever it was produced
I use canonical encoding wherever bytes stand for identity.
The extraction workload is described on the Hidden-state extraction page.
An encoding per link
The broker's own transport uses bincode for its fixed Rust-to-Rust message types; that choice and the broker's design are in A message broker that understands tokens. I choose an encoding per link from what crosses it, as described on Binary wire protocol design.