Distributed IRC-style chat system with gossip-based replication, fault-tolerant client/server recovery, and load-aware routing via replicated Addressing Servers, built on an event-driven Java NIO architecture for scalable non-blocking concurrency.
A distributed IRC-style chat system designed around real distributed-systems concerns: membership/routing, replication, message ordering guarantees, and recovery under failure. Clients connect through an Addressing Server cluster to discover and register with Chat Servers. Chat Servers operate as peers (no central chat authority), persist chat logs to disk, and replicate new messages using configurable gossip fanout (forwarding to the N nearest peers). Servers recover state by requesting chat history from peers, ensuring missed messages are re-fetched after crashes/partitions. The networking layer is built with Java NIO (selectors/channels) to multiplex many client + peer connections without per-connection threads.
Built to implement end-to-end distributed reliability: correct message propagation under reordering/duplication, robust reconnection flows for both clients and servers, and practical failure detection/recovery while staying scalable with an event-driven runtime.