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

  1. 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.

    tiered storageerasure codingCustom storage

    Read the original post →

  2. 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.

    500 PBcustom storagemigration off clouderasure codingCustom storageRustGo

    Read the original post →

  3. Undated

    How we migrated Dropbox from Nginx to Envoy

    Dropbox moved its edge traffic proxy from Nginx to Envoy for better observability and extensibility.

    proxy migrationload balancingEnvoyNginx

    Read the original post →

  4. 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.

    rewritetestingRustPython

    Read the original post →

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.

The best scaling write-ups, weekly

One email a week. No spam.

Subscribe

Browse all 87 topics →