Cloud computing services often replicate data and require that data stays consistent. This tutorial centers on Derecho, a library to assist with solving these problems [1, 2]. Derecho provides consistent replication with blazing speed, often outperforming the weakly-consistent mechanisms that dominate today’s cloud computing infrastructures. Derecho’s asynchronous design is key to its performance: the system achieves lock-free data streaming for critical paths, and data movement is out-of-band from the control plane.
For this tutorial, our first goal is to understand the “design pattern” that enables this big performance boost: separating the control and data planes, performing updates on a code path distinct from that used for queries, and transforming the system to use an asynchronous streaming communication model.
The tutorial is structured into two parts. In the first half, based primarily on our TOCS paper , situates Derecho relative to prior work, explains how it obtains such high speeds, and reviews experiments that clarify why it outperforms prior solutions. We also learn about features aimed at Edge IoT applications that work with real-time sensor data yet still need strong consistency. The second part teaches attendees to use Derecho: we walk through the process of downloading the library, building services that use it, running them locally, and installing them on a cloud. At the end of the second part, participants modify the Derecho demo (a simple AI Sys application), rebuild it and rerun it. SOSP participants who only want to hear about the work but not to really learn the system are welcome to drop in just at the beginning, and then can duck out when we get to the hands-on stage.
 Derecho: Fast State Machine Replication for Cloud Services. S Jha, J Behrens, T Gkountouvas, M Milano, W Song, E Tremel, R Van Renesse, S Zink, and K Birman. ACM TOCS, 36 :2, April 2019.
 RDMC: A Reliable Multicast for Large Objects. Jonathan Behrens, Sagar Jha, Ken Birman, Edward Tremel. IEEE DSN ‘18, Luxembourg, June 2018.