B2.5.2 · dive 2 of 3 · module B2.5
Both ends are gated.
link gates the subject against the subject namespace and the object against the object namespace before any write; reads gate the same way. The key is the pair the gate validates.
The idea
echo_data · bcs/edge_store.exEvery door into an edge checks both ends. A store is created for a relation between two namespaces — a subject namespace and an object namespace — and link gates the subject against the first and the object against the second before it writes anything. An endpoint of the wrong namespace is refused at the door, so a malformed edge is never stored and found wrong later.
The gate is the single point of admission. Only once both ends pass does the store form the {subject, object} key and write the row in both directions; reads gate the same way, so props, from, to, and degree all refuse a wrong-namespace argument before they touch a table. The boundary B2.6 will name in full is already standing at every entry here.
Codemojex relies on this to keep its graphs sound. A player-in-room edge gates a PLR id as the subject and a ROM id as the object; a stray id from another namespace cannot slip into the membership graph, because the store rejects it before the write. The type of each end is enforced at the relation’s edge, not hoped for.
The doors
the sibling coursesEchoMQ — the protocol, in depth
The bus B3 narrates, taught rung by rung: the keyspace, the Lua inventory, and the 3.0 Stream Tier — XADD, XREADGROUP, XACK — with conformance on Valkey.
Redis Patterns Applied
The substrate patterns under the bus: sorted sets, atomic Lua moves, locks, and streams — the judgement layer.
/echo-persistenceEcho Persistence — the durable floor
Beneath the volatile tiers: the Graft page engine built twice, the commit-LSN loop, and the stream archive on Tigris. Where Part I says state lives somewhere, this says where it lives durably.
References
sources · relatedSources
- King — Announcing Snowflake (2010)the branded endpoints whose namespace each gate checks
- Helland — Life Beyond Distributed Transactions (CIDR 2007)entities and the relationships a system keeps between them, as data
- Erlang/OTP — the ets modulethe :private :ordered_set tables and the match specs a relation traverses
Related
- BCS — the course homethe law, the id anatomy, the chapter map
- Echo Persistencethe durable floor beneath the bus