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

n = 42000010011

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, 4 fields eachone spiral1 fused index
PrismPath, fused JSON + protobufbytes on the wire
0200400600123456DEVICES IN THE MESH

3 devices · the ESP-NOW mesh demo runs 3

201×smaller across the mesh

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.

show

size · bytes per decisionlog

stream
110 B · 8.13 MB/day
batch
3.09 B · 0.23 MB/day
fill
1.63 B · 0.12 MB/day

freshness · time to delivery, p95log

stream
instant
batch
~3 min
fill
~47 min

accuracy · decision fidelity

stream
✓ lossless
batch
✓ lossless
fill
✓ lossless
PrismPath decisionstaleness

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 →