Dropbox

Testing sync at Dropbox

Apr 20, 2020Isaac Goldberg
Testing sync at Dropbox
SummaryAI, from the source post

This post details the architectural changes made to the Nucleus sync engine to improve testability. Key changes include designing away invalid system states by enforcing strict invariants in the protocol and data model (e.g., no orphaned files, single atomic moves for folder renames), and adopting a single-threaded concurrency model with offloaded I/O to enable deterministic randomized testing. The post also introduces the concept of randomized testing with a focus on determinism and reproducibility, using a pseudorandom number generator (PRNG) with a seed to ensure consistent test runs.

More from the Sync Engine Rewrite and Testing trail