diff --git a/internal/catalogue/seats.go b/internal/catalogue/seats.go index 591c8be..a5d9868 100644 --- a/internal/catalogue/seats.go +++ b/internal/catalogue/seats.go @@ -35,11 +35,20 @@ type Seat struct { var seats = []Seat{ {Name: "mesh-controller", Scope: ScopeMesh, Decision: "novox/hq ADR 0079"}, {Name: "mesh-store", Scope: ScopeMesh, Delivers: "postgres-database", Decision: "novox/hq ADR 0079"}, - // The bus is the only broker (novox/hq ADR 0117): a module's messaging is subjects on it, - // scoped by its own emits/consumes, not a server handed out as a provision. So this seat - // delivers nothing, like mesh-controller and the-catalogue. The `amqp` interface — a private - // broker per consumer — retires with the compatibility broker. - {Name: "mesh-broker", Scope: ScopeMesh, Decision: "novox/hq ADR 0079"}, + // What holding this delivers is the mesh's own bus (novox/hq ADR 0120): a module that speaks + // to the mesh requires `mesh-bus` and receives an address, a sealed credential and the trust + // to verify the server. A module that requires nothing gets no account at all — 23 of the + // catalogue's 72 never speak, and an ambient connection would mint a credential for each. + // + // Corrected twice in one day, which is worth the comment. It read `amqp`, which was the old + // broker's interface and not this seat's; ADR 0117 emptied it, reasoning that a bus cannot be + // provisioned; and it is neither. The bus's accounts are composed by the controller rather + // than created by a provisioner, so nothing waits on a bus account in order to make one — + // which is a fact about the *mechanism*, not a reason the connection cannot be required. + // + // `mesh-bus` is the mesh's own; `nats` is a private NATS server a module may provide as a + // backing service, the way `amqp` is provided (ADR 0119). Never the same name. + {Name: "mesh-broker", Scope: ScopeMesh, Delivers: "mesh-bus", Decision: "novox/hq ADR 0079"}, {Name: "the-artifact-store", Scope: ScopeMesh, Delivers: "artifact-store", Decision: "novox/hq ADR 0075"}, {Name: "the-catalogue", Scope: ScopeMesh, Decision: "novox/hq ADR 0110"}, {Name: "npm-package-registry", Scope: ScopeMesh, Delivers: "npm-package-registry", Decision: "novox/hq ADR 0109"},