TL;DR: gproc probably isn't what you need, but OTP's global module will probably work fine.
gproc [1][1] has a module gproc_dist that uses gen_leader [2][2] for coordination, no mnesia is involved. Some of the details for how it was originally designed are in Ulf's paper on it [3][3].
The significant disadvantages are:
- The node list by default must be static and known at start time! This will make expanding the cluster a non-starter without changes to gproc and/or gen_leader. There appears to be some experimental/undocumented way to expand a cluster that might work [4][4]
- There might be incorrect logic for net-splits (either detection or resolution) [5][5]
There doesn't appear to be a better global process registry available. The only other one I was able to find easily was ngproc [6][6] which suffers from the same sort of limitations and doesn't seem to be actively maintained.