Árvore de supervisão na tela com um nó vermelho no topo descendo em cascata, coelho de cerâmica tombado sobre a mesa

GenServer the "rabbit hole" — Parte 2: A cascata silenciosa

Continuação de GenServer the “rabbit hole”. Se você ainda não leu, recomendo passar por lá antes — vamos partir do mesmo projeto genserver_study e dos mesmos conceitos de mailbox, supervisor e max_restarts. No artigo anterior nós exploramos como um GenServer “mal comportado” pode encerrar toda a árvore de supervisão quando estoura o max_restarts do supervisor. Mostramos como mensagens são perdidas no mailbox e como o “Let it crash” não é exatamente um cheque em branco para deixar processos quebrarem aleatoriamente. ...

16 de maio de 2026 · 14 min · Daniel Lima
Mesa noturna iluminada por um terminal roxo rodando iex, com um coelho de cerâmica ao lado do teclado

GenServer — the "rabbit hole"

Quando exploramos os pontos fortes do Elixir como linguagem de programação, dois se destacam em frente a outras linguagens do mercado: 🚀 3. Concurrency and Scalability Uses actors (processes) for concurrency (each with its own memory and message queue). Millions of processes can run concurrently with low overhead. Built-in tools for distribution across multiple nodes. 🛠 4. Fault-Tolerance and Supervision Trees “Let it crash” philosophy: Failures are expected and isolated. Supervision trees: Automatically restart failing processes, making systems self-healing and resilient. GenServer é uma abstração sobre o modelo de processos da VM do Erlang que é entregue pelo core da linguagem e se conecta diretamente aos pontos de Concorrência e Árvore de Supervisão do Elixir. Por ser um pilar comum na arquitetura de sistemas construídos em Elixir, e por ser abordado “prematuramente” nas documentações oficiais (Client server communication, OTP Concurrency), é comum que programadores recém-chegados comecem a modelar suas primeiras soluções em Elixir com o uso da abstração fornecida pelo módulo GenServer. Demora um pouco até a doc oficial fazer o primeiro disclaimer para os novos desavisados: When (not) to use a GenServer. ...

19 de julho de 2025 · 15 min · Daniel Lima