The distributed registry was an optimisation added for distributed Erlang deployments where only a single Postgres listener process was used to publish events to subscriptions running on any connected node. Unfortunately it added complexity for unquantified benefits. It also caused annoying errors to be logged whenever :global detected a duplicate named proces when nodes joined a cluster and terminated a conflicting process at random.
The simpler approach is to have a listener process running per node with local publishing. Removing the distributed registry means only a single pub/sub module is used based on Elixir's Registry.
The distributed registry was an optimisation added for distributed Erlang deployments where only a single Postgres listener process was used to publish events to subscriptions running on any connected node. Unfortunately it added complexity for unquantified benefits. It also caused annoying errors to be logged whenever
:global
detected a duplicate named proces when nodes joined a cluster and terminated a conflicting process at random.The simpler approach is to have a listener process running per node with local publishing. Removing the distributed registry means only a single pub/sub module is used based on Elixir's
Registry
.