Archived
novox/hq ADR 0138's remaining half, and the words ship one release before any manifest uses them. A port number is not a name. Three facts have to be said about an endpoint when a module is assigned — which machine port it lands on, the subdomain a proxy serves it under, and how far it reaches — and they were said in three places keyed by the port. A module with two endpoints of different shapes cannot be configured that way without a reader joining numbers by hand: a web surface behind the proxy, whose port only the proxy need reach, and a protocol port clients dial directly because the client expects that number. So a listen carries a name, lowercase and unique within the module, and a route names the endpoint it serves instead of repeating its port. Two endpoints with one name are refused, because an assignment configuring one would silently configure whichever the mesh read last. A route naming an endpoint the module does not declare is refused where it is written rather than resolving to no port and serving nothing. An unnamed endpoint stays valid and a route repeating a port still resolves, which is every module in the catalogue today.