What makes a Phoenix application unique, as a process among all the process of an OS?

Suppose, I have 10 identical Phoenix applications. They are identical 100%, all the code in mix.exs too, the app: my_app too. Except that they’re located in different directories and the ports they use are different.

(1) When I launch each one on a server, will they work with no problem and conflict with each other?

(2) Also, in this situation, what is it that I could change as a developer in order to make each application uniquely identifyable and distinguishable from the rest? Except their port and locations that are already and have to be different.
Namely, if I were to manage them on a server as Erlang/BEAM processes/applications, I’d want to somehow refer to each application, preferably by its Erlang/BEAM process ID or name, or by something similar. What would that ID be?

The OS’ process ID.

Or, if managed through systemd or similar, the services name even.

Depending on the specifics of the applications, you might be able to use Registry to keep track of all the processes.

If you mean “process ID” as in "something that returns true for :erlang.is_pid/1, PIDs and names are either scoped locally to a specific BEAM instance, or globally to all the instances in a cluster.

1 Like

I don’t know yet precisely what it is I need.

Also, in my case will there be a) single or b) multiple instances (one instance of BEAM per application) of BEAM running?