Distributed systems are everywhere, but they remain one of the most challenging areas in software engineering. This workshop gives you the theoretical foundation and practical skills to design, build, and debug distributed systems with confidence.
Workshop Philosophy
We believe in learning by doing. While we cover the theory, the focus is on applying concepts through hands-on exercises. You'll implement simplified versions of real distributed algorithms, helping you internalize the concepts in a way that reading alone cannot achieve.
Day 1: Foundations
The first day focuses on understanding the fundamental challenges and concepts:
- Why simple things become complex when distributed
- The role of time and ordering in distributed systems
- Consistency models and their practical implications
- Replication strategies and tradeoffs
Day 2: Advanced Topics & Implementation
The second day dives deeper into algorithms and practical application:
- Consensus algorithms (with Raft implementation)
- Distributed transactions and patterns
- Observability and debugging
- Capstone project: building a distributed key-value store
Prerequisites
This is an advanced workshop. You should be comfortable with:
- Building backend services
- Basic networking (TCP/IP, HTTP)
- Database fundamentals
- Reading and writing code in at least one language
What You'll Take Away
- Deep understanding of distributed systems principles
- Practical experience implementing distributed algorithms
- A framework for making distributed systems design decisions
- Code you can reference and extend