global singleton gen_server

Roberto Ostinelli ostinelli@REDACTED
Thu Dec 16 19:34:13 CET 2021

Not necessarily. By the time your first gen_server start you might already
have more than one node in your cluster.
I'm ok having other nodes joining later on, I'm trying to avoid a clash
where multiple nodes execute the "cluster init" code

On Thu, Dec 16, 2021 at 3:48 PM Roger Lipscombe <roger@REDACTED>

> Define "cluster start". In normal operation, there's nothing stopping
> another node from joining the cluster at some arbitrary later time,
> even days later. The first node to come up is a degenerate, single
> node cluster, no?
> On Thu, 16 Dec 2021 at 11:00, Roberto Ostinelli <ostinelli@REDACTED>
> wrote:
> >
> > Dear all,
> > I'm trying to run an operation only once on cluster start but there's
> clearly something that I'm missing in the global module (see other related
> question here [1]).
> >
> > Therefore this time I'm trying to have a single global gen_server which
> I start directly from application start/2 callback with:
> > gen_server:start_link({global, ?MODULE}, ?MODULE, [], Options).
> >
> > Nodes are already connected at that point (I can see them with nodes()),
> however for some reason this registration works on all the nodes and I find
> myself with multiple gen_server registered globally.
> >
> > What is the proper way to register a global singleton gen_server at
> cluster level on application start? mY need is to run an operation only
> _once_ a cluster boots up.
> >
> > [1]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the erlang-questions mailing list