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"}
  ]
end

Usage

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.