عن المشروع

This repository is a learning-oriented collection of small, self-contained Elixir examples designed to teach distributed systems concepts from first principles. Rather than focusing on web frameworks or CRUD applications, it uses raw Elixir process primitives to demonstrate how distributed systems are constructed before introducing higher-level OTP abstractions such as GenServer, Supervisor, and Registry. Each example is independent, minimal, and runnable with a single command, and is paired with a technical blog post that explains the problem, design decisions, message flow, limitations, and how OTP solves those limitations. The repository follows a structured roadmap that progresses from process fundamentals to process coordination, distributed BEAM nodes, replication, fault tolerance, distributed data structures, and a final mini distributed message queue project. Completed examples cover building a stateful process without GenServer, correlated request-reply, process monitoring, process linking, a supervisor from scratch, named processes, worker pools, and publish/subscribe. Planned topics include backpressure, connecting nodes, remote message passing, node failure detection, distributed counters, primary/replica replication, heartbeats, leader election, job queues, reliable messaging, write-ahead logs, distributed key-value stores, CRDTs, and a tiny distributed message queue. The repository is useful for developers who want to understand Elixir internals, Erlang/OTP, message passing, concurrent programming, fault tolerance, and the architectural ideas behind systems such as RabbitMQ. It is best treated as an educational lab and blog companion rather than a production-ready framework.