Remote caching
The simplest type of distributed build is one that only leverages remote caching, which is shown in Figure 1.
Remote execution
Remote caching isn’t a true distributed build. If the cache is lost or if you make a low-level change that requires everything to be rebuilt, you still need to perform the entire build locally on your machine. The true goal is to support remote execution, in which the actual work of doing the build can be spread across any number of workers. Figure 2 depicts a remote execution system.
Distributed builds at Google
Since 2008, Google has been using a distributed build system that employs both remote caching and remote execution, which is illustrated in Figure 3.