Storing all genserver pid in ets table in each node

The only thing missing from this thread is someone saying “But Erlang was invented 100 years ago when it ran inside the same rack.”

I say give it a shot, see how it goes.
For mnesia there is GitHub - emqx/mria: Asynchronously replicated Mnesia-like database for Erlang/Elixir · GitHub, maybe that could scale better.

Also maybe of interest - GitHub - ostinelli/syn: A scalable global Process Registry and Process Group manager for Erlang and Elixir. · GitHub

Discord is using Elixir, they have some great blog articles on how they are scaling things.