Why deterministic serialization matters

Building Infrastructure-Grade JSON Canonicalization in Go

When two systems produce different bytes for the same JSON value, signatures break, content-addressed storage diverges, and reproducible builds aren't reproducible. Deterministic serialization is a harder problem than it appears — and the infrastructure that depends on it deserves more than the tests pass as proof.

json-canon is a Go implementation of RFC 8785 JSON Canonicalization Scheme built to that standard. These articles document what it took: the algorithms, the parser, the architectural decisions, and the evidence-based release process that proves the output is actually deterministic.

Each article is self-contained, but together they trace the full arc from specification compliance to provable correctness.

The Series

Four articles covering the full engineering arc, from IEEE 754 formatting to evidence-gated releases.

About Lattice Substrate

Lattice Substrate builds foundational infrastructure libraries where correctness is the product. We focus on deterministic data processing, standards-grade conformance tooling, and engineering practices that produce evidence of correctness — not just confidence. github.com/lattice-substrate

json-canon is open source at github.com/lattice-substrate/json-canon. Pure Go, zero external dependencies, 286,362 oracle test vectors, and an offline replay harness that proves byte-identical output across distributions and architectures before every release.