Ben’s paper on a system called Modulo has been accepted at Usenix’s 2022 Annual Technical Conference! Modulo is a very cool system that Ben worked on during his PhD. It finds convergence failure bugs (CFBs). What are CFBs? The most basic guarantee that most distributed systems aim to provide is that they eventually converge–that is they provide at least eventual consistency. However, Modulo shows that they don’t always do this, and provides a way of finding the CFBs that prevent systems from converging using a novel application of model-based testing and a way to model divergence in distributed applications called a Divergence-Resync Model (DRM). One of the major conclusions we draw from implementing and using Modulo is that these serious bugs often occur as a result of faulty failure handling code, indicating that handling asynchronous failures is one of the most difficult aspects of distributed systems to get correct. You can read the full paper here!