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.
...