Runtime-editable bridge and routing control plane.
This is a single-writer GenServer that persists control-plane state through
the configured Jido.Messaging.Persistence backend.
Summary
Functions
Returns a specification to start this module under a supervisor.
Delete a bridge config.
Delete stored ingress subscription metadata for a bridge.
Delete room routing policy.
Fetch a bridge config by id.
Fetch room routing policy.
List bridge configs, optionally filtered by enabled: true | false.
List stored ingress subscription metadata for a bridge.
Returns the process name for an instance module.
Create or update a bridge config with optimistic revision checks.
Create or update room routing policy with optimistic revision checks.
Persist normalized ingress subscription metadata.
Types
@type revision_conflict() :: {:revision_conflict, expected_revision :: non_neg_integer(), actual_revision :: non_neg_integer() | nil}
@type state() :: %{instance_module: module()}
Functions
Returns a specification to start this module under a supervisor.
See Supervisor.
Delete a bridge config.
@spec delete_ingress_subscription(module() | pid(), String.t(), String.t()) :: :ok | {:error, :not_found}
Delete stored ingress subscription metadata for a bridge.
Delete room routing policy.
@spec get_bridge_config(module() | pid(), String.t()) :: {:ok, Jido.Messaging.BridgeConfig.t()} | {:error, :not_found}
Fetch a bridge config by id.
@spec get_routing_policy(module() | pid(), String.t()) :: {:ok, Jido.Messaging.RoutingPolicy.t()} | {:error, :not_found}
Fetch room routing policy.
@spec list_bridge_configs( module() | pid(), keyword() ) :: [Jido.Messaging.BridgeConfig.t()]
List bridge configs, optionally filtered by enabled: true | false.
@spec list_ingress_subscriptions(module() | pid(), String.t(), keyword()) :: {:ok, [Jido.Messaging.IngressSubscription.t()]} | {:error, term()}
List stored ingress subscription metadata for a bridge.
Returns the process name for an instance module.
@spec put_bridge_config(module() | pid(), Jido.Messaging.BridgeConfig.t() | map()) :: {:ok, Jido.Messaging.BridgeConfig.t()} | {:error, revision_conflict() | term()}
Create or update a bridge config with optimistic revision checks.
@spec put_routing_policy( module() | pid(), String.t(), Jido.Messaging.RoutingPolicy.t() | map() ) :: {:ok, Jido.Messaging.RoutingPolicy.t()} | {:error, revision_conflict() | term()}
Create or update room routing policy with optimistic revision checks.
@spec save_ingress_subscription( module() | pid(), Jido.Messaging.IngressSubscription.t() ) :: {:ok, Jido.Messaging.IngressSubscription.t()} | {:error, term()}
Persist normalized ingress subscription metadata.