Catalogue / Messaging

Pub/Sub topic

messagingpubsub-topic

Fan-out topic. Every subscriber receives every message.

Category
Messaging
Properties
5
Components
13
Rules
1
Properties · 5 defined by this kind

A node of this kind resolves each property from its own props, then the component's defaults, then the default below.

propertytypevaluesrequireddefault
deliveryenumat-most-once | at-least-once | exactly-onceyes—
managedboolean—nofalse
orderingenumnone | per-keynonone
replayboolean—nofalse
topicPerEventType · advancedboolean—notrue
Rules for this kind · 1
pubsub-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.

  • — all of these hold:
  • — the design requirement `messaging.replay` is true
  • — the node's `replay` is false
Components · 13
Source
# yaml-language-server: $schema=../schema/kind.schema.json
# Abstract kind: Fan-out topic. Every subscriber receives every message. Contrast with queue (one consumer) and stream (replayable log).
schemaVersion: "1"
type: "kind"
id: "pubsub-topic"
category: "messaging"
properties:
  delivery:
    type: "enum"
    values: ["at-most-once", "at-least-once", "exactly-once"]
    required: true
  replay:
    type: "boolean"
    default: false
  ordering:
    type: "enum"
    values: ["none", "per-key"]
    default: "none"
  topicPerEventType:
    type: "boolean"
    default: true
    advanced: true
  managed:
    type: "boolean"
    default: false

The same page as markdown, for an agent: /catalogue/kinds/pubsub-topic.md