Commanded v1.0.0 Commanded.PubSub.Adapter behaviour View Source

Pub/sub behaviour for use by Commanded to subcribe to and broadcast messages.

Link to this section Summary

Callbacks

Broadcasts message on given topic.

Return an optional supervisor spec for pub/sub.

List tracked PIDs for a given topic.

Subscribes the caller to the PubSub adapter's topic.

Track the current process under the given topic, uniquely identified by key.

Link to this section Types

Link to this type

adapter_meta()

View Source
adapter_meta() :: map()

Link to this section Callbacks

Link to this callback

broadcast(adapter_meta, topic, message)

View Source
broadcast(adapter_meta(), topic :: String.t(), message :: term()) ::
  :ok | {:error, term()}

Broadcasts message on given topic.

  • topic - The topic to broadcast to, ie: "users:123"
  • message - The payload of the broadcast
Link to this callback

child_spec(application, config)

View Source
child_spec(application(), config :: Keyword.t()) ::
  {:ok, [:supervisor.child_spec() | {module(), term()} | module()],
   adapter_meta()}

Return an optional supervisor spec for pub/sub.

Link to this callback

list(adapter_meta, topic)

View Source
list(adapter_meta(), topic :: String.t()) :: [{term(), pid()}]

List tracked PIDs for a given topic.

Link to this callback

subscribe(adapter_meta, topic)

View Source
subscribe(adapter_meta(), topic :: String.t()) :: :ok | {:error, term()}

Subscribes the caller to the PubSub adapter's topic.

Link to this callback

track(adapter_meta, topic, key)

View Source
track(adapter_meta(), topic :: String.t(), key :: term()) ::
  :ok | {:error, term()}

Track the current process under the given topic, uniquely identified by key.