Build Real Systems
Implement actual distributed algorithms, from message passing to consensus protocols.
Progressive Learning
Start simple and build complexity. Each track builds on the previous one.
8 Languages
Solve challenges in Python, Go, Rust, C++, TypeScript, JavaScript, C, or Java.
Concept Explanations
Each task includes detailed explanations of the distributed systems concepts involved.
Learning Path
Eight categories with 28 tracks and 343+ tasks. Each track builds on concepts from previous ones, covering foundations through advanced distributed systems topics.
Foundations
Core distributed systems concepts: message passing, unique IDs, gossip protocols, and TCP/gRPC.
Consensus
Agreement and state management: CRDTs, leader election, Raft log replication, and linearizable KV.
Scalability
Scaling building blocks: consistent hashing, caching strategies, proxies, and message queues.
Storage
Durable storage internals: WAL, LSM trees, B-trees, distributed file systems, and indexes.
Operations
Workflow coordination: distributed transactions, job scheduling, DAG pipelines, and schema migrations.
Real Systems
Production-grade systems: ZooKeeper, event sourcing/CQRS, MapReduce, and distributed search.
Advanced
Advanced topics: Byzantine fault tolerance, DHT, distributed clocks, and time synchronisation.
Security
Security and observability: JWT, OAuth, encryption, distributed tracing, and alerting.
Learning by Building
Distributed systems are notoriously difficult to understand through passive learning. The only way to truly grasp concepts like consensus, eventual consistency, and partition tolerance is to implement them yourself.
This platform takes inspiration from the Fly.io Gossip Glomers challenges and the Maelstrom testing framework. You will write code that runs against simulated distributed environments, complete with network partitions, message loss, and timing failures.
Each challenge is designed to teach a specific concept through implementation. By the time you complete all tracks, you will have built everything from simple echo servers to fully functional Raft consensus implementations, distributed storage engines, and event-driven architectures.