David Eastwood explores the challenges of implementing the Raft distributed consensus algorithm, drawing parallels between the abstract nature of lambda calculus, category theory, and the practical difficulties encountered in coding. He recounts his 25 attempts to implement Raft, detailing how approaches like test-driven development and debugging often fail due to the algorithm's complex state space and tricky edge cases. Eastwood also shares his experience of teaching a week-long Raft course, where even experienced programmers struggle. He suggests that understanding the boundaries between software components and shifting one's perspective can improve coding the Raft project. The discussion touches on the importance of abstracting away details and the impact of time and error handling in distributed systems, referencing Roblox's 73-hour outage as an example of Raft failure. The talk concludes with a Q&A session.
Sign in to continue reading, translating and more.
Continue