Dropbox architecture: how Dropbox scaled (4 case studies)
Dropbox built Magic Pocket, its own exabyte-class block store, and moved user data off third-party cloud storage (the post cites 500 PB). It later added a cold tier to Magic Pocket that cuts replication overhead for rarely read data, moved its edge proxy from Nginx to Envoy, and rewrote the desktop sync engine in Rust with a new data model built for correctness and testability.
We track 4 public engineering write-ups by Dropbox, published in 2019 (3 undated). Techniques that come up more than once: erasure coding (2). Stack mentioned most: Custom storage (2) and Rust (2). 1 of the 4 state concrete scale numbers, for example "500 PB". Each card below links to our short summary and the original post.
Tech used in Dropbox's scaling write-ups
Dropbox scaling timeline: every story, summarized
- 2019-05-06
How we optimized Magic Pocket for cold storage
Dropbox added a cold tier to Magic Pocket that cuts replication overhead for rarely read data.
- Undated
Scaling to exabytes and beyond
Dropbox built Magic Pocket, its own exabyte-class block store, and moved user data off third-party cloud storage.
- Undated
How we migrated Dropbox from Nginx to Envoy
Dropbox moved its edge traffic proxy from Nginx to Envoy for better observability and extensibility.
- Undated
Rewriting the heart of our sync engine
Dropbox rewrote its desktop sync engine in Rust with a new data model built for correctness and testability.
FAQ
What is Dropbox Magic Pocket?
Magic Pocket is Dropbox's own exabyte-class block storage system, built with Rust and Go, which Dropbox used to move user data off third-party cloud storage. A 2019 post describes a cold tier that uses erasure coding to cut replication overhead for rarely read data.
Why did Dropbox move from Nginx to Envoy?
Dropbox's post says it moved its edge traffic proxy from Nginx to Envoy for better observability and extensibility.
Why did Dropbox rewrite its sync engine in Rust?
Dropbox rewrote its desktop sync engine in Rust with a new data model built for correctness and testability.