Project · 2020
Distributed Messaging System
Highly reliable messaging system with chat, group chat, and secure chat functionality, with state replication between nodes for fault tolerance and dynamic routing between clients and servers.
Technologies
- Elixir
- GenServer
- Swarm
- Distributed Systems
- Docker
Project links
This messaging system explores reliable communication across distributed nodes. It supports direct chat, group chat, and secure chat while replicating state so that another node can continue serving clients when a failure occurs.
Elixir processes and GenServer provide the application’s concurrency model, with Swarm coordinating distributed process registration. Separate client, router, and supervised server components divide the system’s responsibilities, while dynamic routing connects clients to available servers. Docker provides a repeatable environment for running and testing the multi-node topology.