In this post, we document the system design of dropbox in 2012 mentioned in the Youtube video How We've Scaled Dropbox. What we can learn is that staring from a single server architecture is ok. It's actually necessary because when we start a new thing we don't know where it will go nor do we have the resource to develop sophisticated architecture. The focus should be on the functionality and to build a minimal viable product as soon as possible.

The final design is illustrated by the figure below. Caches and load balancers are added. These two changes are optimization.

There is another change introduced in the final design: BlockServer does not connet to DB anymore. We could consider this change as a separation of responsibility. Another way to think of it is that to some extent the usage of DB is an “implementation detail” and BlockServer should not care too much about it.

----- END -----
©2019 - 2023 all rights reserved