Skip to main content

Interface: EventRule

Defined in: packages/contracts/src/permissions/table.ts:100

Who may publish an event contract, and who listens to it live.

Properties​

publishedBy​

readonly publishedBy: readonly Participant[]

Defined in: packages/contracts/src/permissions/table.ts:107

Participants permitted to publish it, each on event.<tenant>.<itself>.…. For a key whose module token is concrete this must be exactly that participant. A participant that is not a module (gateway, gateway-admin, bootstrap) publishes only an event whose module token is its own name.


subscribedBy?​

readonly optional subscribedBy?: readonly Participant[]

Defined in: packages/contracts/src/permissions/table.ts:119

Participants that subscribe to it on core NATS: live delivery, best effort, and nothing replayed after a restart. For a hint whose loss something else already bounds, such as the gateway's cache eviction on grant.revoked, which the cache's TTL bounds anyway (D2.12).

An event that must not be lost is read through a durable consumer instead, which is declared under STREAMS and not here. Events travel on the broker between co-hosted modules too (02), so a subscriber is granted even when it shares the publisher's host.