2026-09-25 –, 106 (Capacity 45)
Abstract
Consensus in distributed systems is often seen as one of the hardest problems in computer science. Even simple operations must deal with unreliable networks, node failures, and the absence of a global clock.
This talk presents an intuitive, step-by-step approach to understanding consensus. Instead of starting with established algorithms or formal proofs, we begin with a naïve solution and iteratively refine it by exposing its failures under realistic conditions. Each refinement introduces a key idea that leads toward a correct and practical consensus approach.
Along the way, we will build an understanding of why consensus is fundamentally challenging, what constraints make it impossible in some settings, and why real-world algorithms are designed the way they are. By the end, the audience will have a clear mental model of consensus and be able to reason about protocols such as Raft or Paxos with greater confidence.
Objectives
- Tackle the problem of consensus using first principles and simple reasoning.
- Demonstrate how realistic failure scenarios shape the design of consensus protocols.
- Provide a mental framework to reason about correctness and trade-offs in distributed coordination.
Requirements
Basic familiarity with backend systems.
- Presentation [Work in Progress]
- Excalidraw Slide 1 - Introduction to the Problem (2.0 MB)
- Excalidraw Slide 2 - Simplifying the Problem - State Machines (1.7 MB)
- Excalidraw Slide 3 - Attacking the Problem - Democracy (2.5 MB)
- Excalidraw Slide 4 - Attacking the Problem - Two Phase Commit (2.4 MB)
- Excalidraw Slide 5 - The Problem Strikes Back (2.7 MB)
I am a Senior Software Engineer at Red Hat, working on large-scale backend systems and cloud platform integrations. I have about 7 years of experience building distributed systems, with a focus on consensus, fault tolerance, and system design.
Previously, I worked at KNNX Corp, where I built blockchain-based systems and led a development team. My work has involved applying concepts such as quorum-based systems, distributed coordination, and high-availability design in production environments.
I have also presented technical topics internally and enjoy breaking down complex distributed systems concepts into intuitive mental models.