PrismPath · The wire
Facet: ship the decision, not the data.
A policy depends on only some distinctions in its input. Figueroa quantization derives, from the policy text, the cells of each field that can change a decision, and a reading is sent as one symbol per cell. Any representative of a cell routes identically, and that is proven in Lean 4 within a declared domain. Facet is the wire that carries the symbol: self framing Fibonacci codes, per packet Merkle roots, a staleness bound by cadence, replay refusal with a named cause, and a concentrator for fleets. Both ends already hold the policy, so the codebook is agreed, never sent.
Everything on this page is driven by measurements committed to the evidence ledger. The wire is PrismPath’s own and composes with other engines; the pre registered comparison carried OPA’s input on it.
The codebook on the wire
A page of policy in.
One symbol out.
Both ends share the policy as a codebook, so a reading runs off it onto the wire as a single symbol, the whole decision on a wire of its own, about 1.5 bytes.
The shipped symbol
The whole decision on the wire: the cell's center-outward index as a self-framing Zeckendorf code, 9 bits. The band alone (physical_escalation) routes in ~0.5 B, and band membership is two integer compares, base ≤ n < base + width.
The mesh fuses to one decision
Add a device and JSON pays another envelope. The fused decision doesn't grow.
A mesh of devices, each running the same 4-field policy. The mesh fuses their readings onto one spiral, forms a single index, and ships that one fused decision. JSON + protobuf has no fusion: it ships every device's event and correlates downstream.
3 devices · the ESP-NOW mesh demo runs 3
304 B
JSON + protobuf · 3 events, one per device
1.5 B
PrismPath · one fused decision
Every device adds a full JSON + protobuf envelope: resource attributes, timestamps, trace context, at least 101 B and often more. The mesh instead fuses to one spiral index and ships that: a fused decision that grows in bits, not bytes, and stays nice and small no matter how many devices join.
Measured, not asserted
The decision, not the log.
A security operations center ships the whole alert: about 3,020.4 bytes of JSON per event, most of it log body you already have. PrismPath routes each alert to a decidable verdict and ships that verdict plus its proof, run here over 64,484 real triage grade alerts. Decision lossless, not data lossless. Compress that minimal JSON and it lands near our size on raw bytes; what a compressor cannot give you is a tamper evident, self framing, streaming decision that reconstructs bit for bit with nothing to decompress. Against OpenTelemetry, the wire real observability runs on, the same decision is 66.9 times smaller. Smaller is the side effect. Provable is the point. The benchmark ships in the repo.
Raw alert JSON
3,020.4 B
per alert
OpenTelemetry (OTLP)
101.372 B
per event · 66.9 times our size
Minimal 4 field JSON
68.1 B
per alert · 45 times our size
Decision + proof
1.516 B
per alert · 1,992 times smaller than raw
Three ways to send it. You choose.
Stream every decision, batch by count, or fill the packet before you send. The choice trades bandwidth against freshness. It never trades accuracy: every strategy is decision lossless, and a latency cap is a knob you add on top, not a mode you commit to. Measured over 2,501,190 decisions.
size · bytes per decisionlog
freshness · time to delivery, p95log
accuracy · decision fidelity
And it runs on real hardware: a live capture fused a physical sensor with this SIEM in real time across 3 sessions (4,369 readings, 90alerts). The sensor’s own on chip classifier agreed with the derived posture 96% of the time.
Try it on your own data
Paste an event. See the approximate saving.
Drop a JSON event below and we approximate what its decision would cost on the wire as a single PrismPath symbol. It is an estimate, not a benchmark.
Paste an event, or use the example, to see the estimate.
This is an approximation.It assumes your JSON is one decision's worth of telemetry and every scalar is decision-relevant, and models the decision as one self-framing index at about 2.8 bits per field plus framing (anchored to the measured spiral bench). Your real numbers depend on your actual policy; the only way to know them is to write it and measure. Compared against minified JSON, the fair floor; a real OTLP envelope is larger.
Specified
The wire format, its invariants and its conformance clause, in the repository.
PROTOCOL.md →Proven
Decision preservation in Lean 4, thirteen theorems with zero sorry, bridged to the shipped code by 623 evaluated checks. The paper states the domain.
Read the paper →Readable
A Wireshark dissector and a packet capture corpus ship with the repository, so the wire can be read by the tool network engineers already use.
The dissector →