jonnify·bcs /bcs/ideas/system-substrate

B1.1 · The System Substrate — manuscript chapter 1.1

The law, executable.

The smallest faithful BCS system: a boundary gate that admits one namespace, a property store that owns its table outright, a supervisor that restarts stores independently. Built and transcript-proven in Elixir; designed in Go as the same shape in different ownership clothing.

The chapter is content/bcs1.1.md; the rung behind it is bcs1.1, and its committed transcript closes PASS 6/6. Every figure on this module's pages is verbatim from that output.

The smallest faithful system. Three parts. Select one to read its exact surface.
id in restarts EchoData.Bcs gate/2 — one namespace refuses :namespace | :invalid PropertyStore :ordered_set, :private owns one ETS table outright Supervisor named stores, one_for_one independent restarts
readout · Select a part to read its surface. The three together are the whole substrate — small enough that the manuscript's "who" includes an agent given one brief and no further conversation.
§1

Three failures motivate it

content/bcs1.1.md · Why
FAILURE 1

The reach-through

A risk engine that reads the position table directly works until the position system changes its representation — at which point risk breaks in a file the position team does not own. Every "optimization" that touches the table is an undesigned consistency protocol.

FAILURE 2

The traveling object

An order struct serialized across services forks the truth — the copy ages while the original moves — or, worse, a remote reference rebuilds distributed shared memory with none of its guarantees.

FAILURE 3

The silent join

A TXN id reaching the AST table compiles fine in untyped-id systems and fails at runtime if the system is lucky — with cross-entity data if it is not.

The substrate exists to make all three impossible by construction rather than discouraged by review. The trading system this course builds makes each failure concrete.

§2

The proof

content/bcs1.1.md · quoting bcs_rung_1_1_check.out

Three modules and a proof: EchoData.Bcs is the boundary discipline, EchoData.Bcs.PropertyStore owns one private ordered table, EchoData.Bcs.Supervisor runs named stores one_for_one. The rung's check script attempts the architecture's canonical crimes on stage; the committed transcript records each refusal:

content/echo_data/runtimes/elixir/bcs_rung_1_1_check.out · verbatimfrozen
G1 reach-through ok -- outside lookup -> ArgumentError, insert -> ArgumentError; info reports protection: :private (metadata visible, data refused)
G2 traveling-object ok -- map/tuple/integer ids -> FunctionClauseError 3/3; inter-store message carried {:entity, id} only; :burned recorded BRL0NsHLqGoDbd
G3 typed ok -- rejects 4/4 as :invalid; GRD id on BRL store -> {:error, :namespace}; raising twin -> NamespaceError
G4 ordered ok -- page_desc(2000) == byte-sort desc over 2000 minted ids; store holds no clock
G5 placed ok -- placement(USR0KHTOWnGLuC) -> 234878118
G6 canon ok -- self_check! -> {:ok, :native} (init gates on the same check)
PASS 6/6

Each line is one attempted crime refused: the VM itself rejects outside data access on the private table while permitting metadata introspection; non-id shapes die in pattern matching before any store code runs; the wrong namespace is a typed refusal in both tuple and exception form; two thousand minted ids page newest-first from byte comparison alone; placement is the contract's arithmetic; and a store that cannot prove its codec refuses to start.

§3

The dives

three lessons, fixed by the chapter spec

Reach for a property store when one system is the single writer of some state and chronology should come from the keys. When the question spans systems, that is a message over the bus — Part III's subject. When state must answer commands with new events, that is the decider's shape, and the manuscript plans Part VIII to rethink it on this substrate.

§4

References

sources · related

Sources

Related