Sagents.Horde.ClusterConfig (Sagents v0.4.0)
Copy MarkdownConfiguration helpers for Horde clustering.
Configuration Examples
Auto-discovery (all nodes in cluster)
config :sagents, :horde,
members: :autoStatic member list
config :sagents, :horde,
members: [
{Sagents.Horde.AgentsSupervisorImpl, :node1@host},
{Sagents.Horde.AgentsSupervisorImpl, :node2@host}
]Dynamic via MFA tuple
config :sagents, :horde,
members: {MyApp.HordeConfig, :get_members, []}Regional clustering (Fly.io example)
# In config/runtime.exs
region = System.get_env("FLY_REGION") || "default"
config :sagents, :horde,
members: {Sagents.Horde.ClusterConfig, :regional_members, [region]}
Summary
Functions
Returns members for auto-discovery mode.
Returns members for regional clustering.
Resolve cluster members for a given module name.
Validates Horde configuration at startup.
Functions
Returns members for auto-discovery mode.
Includes all connected nodes plus the current node.
Returns members for regional clustering.
Only includes nodes with matching region metadata. Useful for Fly.io deployments where you want agents to stay within a geographic region.
Examples
# In config/runtime.exs
region = System.get_env("FLY_REGION") || "default"
config :sagents, :horde,
members: {Sagents.Horde.ClusterConfig, :regional_members, [region]}
Resolve cluster members for a given module name.
Reads the :members config from :sagents, :horde and resolves it
to a list of {module, node} tuples suitable for Horde.
Validates Horde configuration at startup.
Raises if configuration is invalid.