This month I want to highlight an article Testing sync at Dropbox…and how we rewrote the heart of sync with confidence, by Isaac Goldberg. This article describes how Dropbox rewrote their sync engine (the engine that powers Dropbox on hundreds of millions of customer machines) and swapped it out mid-flight. The team decided that Dropbox’s original engine did not support their required scalability, both with the current feature set and the planned feature set, and set forth to accomplish a monumentally difficult task. In this article, we see their structured approach to accomplishing the task while avoiding regressing 10+ years of bug fixes.
Software products must evolve as the world changes; technological improvements, customer expectations, and global events such as COVID-19 can all trigger these evolutions. Swapping out your product’s core functionality requires the utmost confidence in your platform’s testing mechanisms to keep your customer’s data safe, secure, and accurate, and this article details exactly how Dropbox gained that confidence in order to achieve their goals.
https://dropbox.tech/infrastructure/-testing-our-new-sync-engine
“Why wasn’t the old system testable? What made it so hard to avoid regressions and maintain correctness in that system? And what did we learn that informed the architecture of our new system?
For one, the server-client protocol and data model of Sync Engine Classic were designed for a simpler time and a simpler product, before Dropbox had sharing, before Dropbox had comments and annotations, and before Dropbox was used by thousand-person enterprise teams. Dropbox has evolved quite a bit in the 12+ years since we designed the original system, and the requirements have changed greatly.”
Leave a comment