mesh-broker's Binding is the wire form and Held carries it, so list, show and orphans answer the binding
The seat's Binding takes the fields the events carry and the membership holds (local, storage, template, stream, subject, bucket, object-store, history, state, indexes, snapshot, types): one form in the events, in list, show and orphans. Held gains binding, present on an entry the bus holds. Definition, fixture and generated Go and TypeScript contract. Builds: design 25 bindings-first-view §2, §7 (hq d0760629, PR 543) Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
This commit is contained in:
@@ -47,16 +47,32 @@ export const recreatedSubject = "mesh.seat.mesh-broker.event.recreated";
|
||||
|
||||
export const droppedSubject = "mesh.seat.mesh-broker.event.dropped";
|
||||
|
||||
/** the binding a module receives in its membership for one entry (ADR 0595 §1, §7) */
|
||||
/** the binding a module receives in its membership for one entry (ADR 0595 §1, §7): the names on the bus of the entry's objects, one form in the events, in list, show and orphans, and in the membership */
|
||||
export interface Binding {
|
||||
/** the entry's name on the bus */
|
||||
"bus-name": string;
|
||||
/** how the bus keeps it */
|
||||
"storage-type": string;
|
||||
/** its subjects, for a stream */
|
||||
"subjects"?: string[];
|
||||
/** a key-value bucket's name */
|
||||
"bucket"?: string;
|
||||
/** a ledger's history stream */
|
||||
"history"?: string;
|
||||
/** a ledger's index buckets, by index name */
|
||||
"indexes"?: Record<string, string>;
|
||||
/** the entry's local name in the module's manifest */
|
||||
"local": string;
|
||||
/** an object store's name */
|
||||
"object-store"?: string;
|
||||
/** the subject of a ledger's instances' snapshots */
|
||||
"snapshot"?: string;
|
||||
/** a ledger's state bucket */
|
||||
"state"?: string;
|
||||
/** how the bus keeps it: the entry's storage type */
|
||||
"storage": string;
|
||||
/** a stream's name on the bus */
|
||||
"stream"?: string;
|
||||
/** the subject a stream's messages are on; also a ledger's history's */
|
||||
"subject"?: string;
|
||||
/** its template */
|
||||
"template"?: string;
|
||||
/** a ledger's types, as its manifest declares them */
|
||||
"types"?: Record<string, unknown>[];
|
||||
}
|
||||
|
||||
/** one piece of bus state as a manifest asks it */
|
||||
@@ -86,6 +102,8 @@ export interface Fill {
|
||||
|
||||
/** one entry as the bus holds it */
|
||||
export interface Held {
|
||||
/** the binding a module receives for the entry, as created and recreated carry it; present on an entry whose objects the bus holds, absent on one it does not (design 25 bindings-first-view §2) */
|
||||
"binding"?: Binding;
|
||||
/** its name on the bus, <module>_<local name> */
|
||||
"bus-name": string;
|
||||
/** its own configuration, where no template fits */
|
||||
|
||||
Reference in New Issue
Block a user