Building Distributed Systems in Elixir: Part 1 - Building a Stateful Process in Elixir Without GenServer
The article shows how a counter can be built as a BEAM process with private state, message passing, and a recursive receive loop, then contrasts that core model with what GenServer adds.