View Source Phoenix.PubSub.Adapter behaviour (Phoenix.PubSub v2.1.1)

Specification to implement a custom PubSub adapter.

Link to this section Summary

Callbacks

Broadcasts the given topic, message, and dispatcher to all nodes in the cluster (except the current node itself).

Returns a child specification that mounts the processes required for the adapter.

Broadcasts the given topic, message, and dispatcher to given node in the cluster (it may point to itself).

Returns the node name as an atom or a binary.

Link to this section Types

@type adapter_name() :: atom()

Link to this section Callbacks

Link to this callback

broadcast(adapter_name, topic, message, dispatcher)

View Source
@callback broadcast(
  adapter_name(),
  topic :: Phoenix.PubSub.topic(),
  message :: Phoenix.PubSub.message(),
  dispatcher :: Phoenix.PubSub.dispatcher()
) :: :ok | {:error, term()}

Broadcasts the given topic, message, and dispatcher to all nodes in the cluster (except the current node itself).

@callback child_spec(keyword()) :: Supervisor.child_spec()

Returns a child specification that mounts the processes required for the adapter.

child_spec will receive all options given Phoenix.PubSub. Note, however, that the :name under options is the name of the complete PubSub system. The reserved key space to be used by the adapter is under the :adapter_name key.

Link to this callback

direct_broadcast(adapter_name, node_name, topic, message, dispatcher)

View Source
@callback direct_broadcast(
  adapter_name(),
  node_name :: Phoenix.PubSub.node_name(),
  topic :: Phoenix.PubSub.topic(),
  message :: Phoenix.PubSub.message(),
  dispatcher :: Phoenix.PubSub.dispatcher()
) :: :ok | {:error, term()}

Broadcasts the given topic, message, and dispatcher to given node in the cluster (it may point to itself).

@callback node_name(adapter_name()) :: Phoenix.PubSub.node_name()

Returns the node name as an atom or a binary.