Jido.Pod.Topology
(Jido v2.2.0)
View Source
Canonical pod topology data structure.
Topologies are pure data. They define the named durable nodes that a pod manages and can be validated, stored, and mutated independently of runtime process state.
Summary
Functions
Removes a link from the topology.
Removes a node from the topology.
Returns the direct :depends_on prerequisites for the given node.
Orders the given node names according to :depends_on links.
Fetches a node by name.
Builds a topology from the common shorthand node map form.
Builds a topology from shorthand, raising on error.
Builds a validated topology.
Builds a validated topology, raising on error.
Returns the owned children for the given node.
Returns the logical owner of a node when the topology contains an :owns link.
Appends a link to the topology if it is not already present.
Inserts or replaces a node definition in the topology.
Builds runtime reconcile waves for the requested nodes.
Returns the root nodes that have no logical :owns parent.
Returns a copy of the topology with a new validated name.
Types
Functions
Removes a link from the topology.
Removes a node from the topology.
Returns the direct :depends_on prerequisites for the given node.
Orders the given node names according to :depends_on links.
Only dependencies between the provided node names participate in ordering. Other links are ignored.
@spec fetch_node(t(), node_name()) :: {:ok, Jido.Pod.Topology.Node.t()} | :error
Fetches a node by name.
Builds a topology from the common shorthand node map form.
Builds a topology from shorthand, raising on error.
Builds a validated topology.
Builds a validated topology, raising on error.
Returns the owned children for the given node.
Returns the logical owner of a node when the topology contains an :owns link.
@spec put_link(t(), Jido.Pod.Topology.Link.t() | tuple() | keyword() | map()) :: {:ok, t()} | {:error, term()}
Appends a link to the topology if it is not already present.
@spec put_node(t(), node_name(), Jido.Pod.Topology.Node.t() | keyword() | map()) :: {:ok, t()} | {:error, term()}
Inserts or replaces a node definition in the topology.
Builds runtime reconcile waves for the requested nodes.
Each wave contains nodes whose ownership and dependency prerequisites are satisfied by earlier waves. The requested nodes are automatically expanded to include transitive owners and dependencies.
Returns the root nodes that have no logical :owns parent.
Returns a copy of the topology with a new validated name.