Sobre o projeto
Este repositório é uma coleção de pequenos exemplos de Elixir, orientados para o aprendizado, projetados para ensinar conceitos de sistemas distribuídos a partir de princípios básicos. Em vez de se concentrar em frameworks web ou aplicativos CRUD, ele usa primitivas de processo de Elixir para demonstrar como os sistemas distribuídos são construídos antes de introduzir abstrações OTP de nível superior, como GenServer, Supervisor e Registry.
Cada exemplo é independente, minimalista e pode ser executado com um único comando, sendo acompanhado por um post de blog técnico que explica o problema, as decisões de design, o fluxo de mensagens, as limitações e como o OTP resolve essas limitações. O repositório segue um roteiro estruturado que progride desde os fundamentos do processo até a coordenação de processos, nós BEAM distribuídos, replicação, tolerância a falhas, estruturas de dados distribuídas e um projeto final de mini fila de mensagens distribuída.
Os exemplos concluídos incluem a construção de um processo com estado sem GenServer, solicitação-resposta correlacionada, monitoramento de processos, vinculação de processos, um supervisor do zero, processos nomeados, pools de trabalhadores e publicação/assinatura. Os tópicos planejados incluem backpressure, conexão de nós, passagem de mensagens remotas, detecção de falha de nós, contadores distribuídos, replicação primária/réplica, heartbeats, eleição de líder, filas de tarefas, mensagens confiáveis, logs de escrita antecipada, lojas de chave-valor distribuídas, CRDTs e uma pequena fila de mensagens distribuída.
O repositório é útil para desenvolvedores que desejam entender os internos do Elixir, Erlang/OTP, passagem de mensagens, programação concorrente, tolerância a falhas e as ideias arquitetônicas por trás de sistemas como RabbitMQ. Ele deve ser tratado como um laboratório educacional e um complemento de blog, em vez de um framework pronto para produção.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.