Pub/Sub topic where replay is required

errorpubsub-replay-required

The design declares that consumers must be able to replay history. A fan-out topic that does not retain messages cannot deliver that.

Severity
error
Selects
every node of kind pubsub-topic
Components in scope
13
What it checks

It looks at every node of kind pubsub-topic, and fires when:

  • — all of these hold:
  • — the design requirement `messaging.replay` is true
  • — the node's `replay` is false
Message
Topic '{{node.id}}' cannot replay messages, but the design requires replay. Use a stream or a replayable queue.

{{node.id}} style paths are filled in from the node, the edge or the design the finding is about.

Applies to · 13 components
Tripped by · 5

Reference designs whose broken twin names this rule in its header. The gate reads the same header, and fails when a rule no design trips.

Source
# yaml-language-server: $schema=../schema/rule.schema.json
# The design declares that consumers must be able to replay history, but a fan-out topic
# without replay cannot deliver that. Tripped by designs/order-processing.broken.yaml.
schemaVersion: "1"
type: "rule"
id: "pubsub-replay-required"
severity: "error"
select:
  node:
    kind: "pubsub-topic"
when:
  all:
    - requirement: "messaging.replay"
      equals: true
    - prop: "replay"
      equals: false
message: "Topic '{{node.id}}' cannot replay messages, but the design requires replay. Use a stream or a replayable queue."

The same page as markdown, for an agent: /catalogue/rules/pubsub-replay-required.md