broker: a module account scopes its tool serve queues + mesh.rpc (ADR 0052) #5
@@ -126,6 +126,17 @@ type Manifest struct {
|
||||
// Requires are names that must be provided by something assigned to the same node.
|
||||
Requires []string `json:"requires,omitempty"`
|
||||
|
||||
// Emits are the event types this module publishes onto the broker — dotted topic keys, e.g.
|
||||
// "module.umami.site.created". Declared so the mesh knows the event graph; events are
|
||||
// provisioning's lighter sibling — 1:many and broadcast, no credential (novox/hq ADR 0046).
|
||||
Emits []string `json:"emits,omitempty"`
|
||||
|
||||
// Consumes are the event patterns this module subscribes to — topic patterns over module,
|
||||
// mesh and node events alike, e.g. "node.*.joined" or "#" (the audit logger). The runtime
|
||||
// wires the subscription; the module ships the handler. A Consumes for an event nothing on
|
||||
// the mesh Emits is a dangling edge.
|
||||
Consumes []string `json:"consumes,omitempty"`
|
||||
|
||||
// Claims are singular resources. Two modules claiming one thing within a scope cannot both
|
||||
// be assigned there — which is how exclusivity is expressed, rather than as a list of rivals
|
||||
// that every new module would force its predecessors to update.
|
||||
|
||||
Reference in New Issue
Block a user