A very quick rundown of your options:
Registry
is local onlygproc
has a global mode but the consensus is that it is unreliable. so consider it local only.- you can use
pg
(part of OTP) if you need a distributed process group (duplicate keys) - you can use
global
(part of OTP) if you need a distributed process registry (unique keys) - you can also use
syn
- you seem to already be aware of its pros/cons - you can also use
Phoenix.Tracker
, which is part of thephoenix_pubsub
project, as a distributed process group (duplicate keys)
EDIT: Updated in 2023 to mention pg
instead of pg2
in Erlang/OTP.