BuildBuddy has implemented Content-Defined Chunking (CDC) in its Remote Cache to optimize data transfer during Bazel builds worldwide [1, 2]. CDC allows the system to transfer only the changed bytes of large build outputs instead of sending entire outputs when minor changes occur, improving efficiency [1, 2].

Traditional remote caching sends whole blobs if even a small part of the action's output changes. This method transfers excess data and bloats disk caches, slowing build speeds. CDC addresses this by breaking outputs into smaller chunks defined by content instead of fixed size, enabling granular uploads of modified bytes [1, 2].

Benchmark tests run on BuildBuddy's own repository revealed that implementing CDC led to a 40% reduction in data uploaded to the remote cache and a 40% decrease in disk cache size, streamlining both network and storage usage significantly [1, 2].

CDC proves especially valuable for complex transitive actions such as linking, bundling, packaging, and archiving. These outputs aggregate many dependencies, increasing their size and likelihood of partial changes, so CDC can save substantial resources in these cases [1, 2].

Users wanting to enable client-side CDC need to use Bazel version 8.7 or 9.1 and later, and activate the feature using the --experimental_remote_cache_chunking flag [1, 2].

The rollout of CDC integration in BuildBuddy's remote cache marks a step toward more efficient remote build caching in Bazel workflows by reducing redundant data movement and storage demands.