Calling a GenServer on a remote machine

Well, there are a lot of good libraries above, but as I see the problem statement, one does not need any external library, nor even pg here.

Just name a process as {:global, Name}, and make sure the nodes are connected (by calling Node.connect/1 and checking it with Node.list/0.

Then :global.whereis_name/1 will give you a remote PID back, and you might use all the functions from GenServer using {:global, Name} as a remote process name.