Welcome to the Derecho tutorial!
The Derecho Project
Derecho is an open-source C++ distributed computing toolkit that provides strong forms of distributed coordination and consistency at RDMA speeds. Its goal is to be a library for building high-speed replicated systems on RDMA networks, with a simple and flexible interface that is much easier to use than standard RDMA drivers. The platform is currently under development by a Cornell-based team that includes Sagar Jha, Matthew Milano, Edward Tremel, and Weijia Song, as well as Professors Ken Birman and Robbert van Renesse.
Derecho aims at developers of new microservices that would run in cluster or cloud-hosted settings, with significant memory and network resources (our experiments tend to be on dedicated machines, with RDMA NICs, and without much contention on the particular links the RDMA traffic travels over, although we have done some work in less performant environments). You can configure Derecho to run over TCP instead of RDMA, but performance will be degraded, and we do not expect it to work well with substantial scheduling delays, very slow links, or high rates of node failure.
Derecho was developed and tested in an Ubuntu environment, since this is the most common OS to run on cloud servers, although it should be able to run on other Linux distributions as long as they provide the libraries we depend on. We do not currently support Windows, though it may soon be possible to run Derecho in the Windows Subsystem for Linux if LibFabrics (the library we rely on for RDMA networking) implements better WSL support.
You can download the source code for Derecho from our main repository at https://github.com/derecho-project/derecho/. The README hosted at that repository provides installation and usage instructions.
The GitHub README at the derecho repository contains a brief guide to setting up and running a distributed service using Derecho. You can also read it on our project’s homepage. In addition, most of the developer-facing code in Derecho is documented with Doxygen comments, and the generated Doxygen HTML is hosted online for your convenience.