jonnify·bcs /bcs/ideas/ecs-to-bcs

B1.3 · dive 3 of 3

From ECS to BCS.

The index-handle’s three deaths — the save file, the socket, the foreign store — each a missing contract property, and the short translation that repairs them.

An index dies at three walls; the branded name crosses. Select a wall.
index #7 save filesocketdatabase USR0KHT…✓✓✓minted once · unique across machines · printable and ordered
readout · Select a wall. An ECS index is enough inside one process and dies the moment it leaves; the branded name crosses where it cannot.
§1

The idea

the ECS arc · the translation

The Entity-Component-System pattern was right to give each system a clean boundary, and incomplete in what it let cross: a process-local integer index. That index is a fine handle while the process lives, and it dies three times the moment it leaves.

It dies at the save file, because an index means nothing after the process that issued it exits. It dies at the socket, because an index on one machine names a different row on another. And it dies at the foreign store, because a database has nothing to hold or order it by, and no type to catch a join against the wrong table. Each death is the absence of a contract property: stability past the process, one identity scheme across machines, a printable ordered key a store can keep.

The branded id fills each gap — minted once and never re-derived, unique across machines by its node bits, printable and ordered for a store to hold — so the move from ECS to BCS is a short translation. An entity becomes a branded id; a component becomes a property row keyed by that id; a system becomes a process owning those rows behind a namespace gate. The pattern keeps its boundary and gains a value strong enough to leave it.

§4

The doors

the sibling courses
§2

References

sources · related

Sources

Related