PgRegistry
A distributed process registry backed by Erlang's :pg module. Works like Elixir's Registry but discovers processes across clusters.
Installation
Add pg_registry to your list of dependencies in mix.exs:
def deps do
[
{:pg_registry, "~> 0.1.0"}
]
endUsage
Add PgRegistry to your supervision tree:
children = [
{PgRegistry, :my_registry}
]
Register processes using the :via tuple:
GenServer.start_link(MyServer, arg, name: {:via, PgRegistry, {:my_registry, :my_key}})Look up processes across the cluster:
PgRegistry.whereis_name({:my_registry, :my_key})How it works
PgRegistry uses Erlang's :pg module under the hood. When nodes connect, :pg automatically syncs process group memberships across the cluster, making registered processes discoverable from any node.
License
MIT - see LICENSE.