Building Distributed Systems in Elixir: Part 6 - Named Processes

Part 6 is out.

A process has a PID, but a PID represents a process instance, not necessarily the identity of the service that process provides.

That distinction becomes interesting when processes are restarted, replaced, or located across BEAM nodes.

This part digs into process naming from the primitives up, without GenServer, Supervisor, or other OTP abstractions.

It explores:

  • Local process registration and lookup
  • Global process naming with :global
  • Name-based communication and PID coupling
  • Process identity versus process instance identity
  • What changes when naming moves from a single BEAM node to a cluster

The examples are intentionally small, but the underlying question is broader:

How do we maintain a stable way to address a capability when the process providing it is inherently ephemeral?

Feedback, corrections, and alternative perspectives are always welcome.

Code: GitHub

3 Likes