Dropbox

Client side
Watcher
Watches directory for added files. Send info to indexer about added files.
Indexer
Receives events about files added, deleted. Breaks down the file in chunks. Add info about file chunks to local metadata DB.
Chunker
Chunk the file by given location. 4Mb blocks.
Versioning

Server side
At first we upload blocks of file (step 4). Once it is confirmed we send a message to the queue.
This queue can be split by geo or buy other means.
Sync service
Saved metadata, makes sure that all info and file content is consistent.
Notification about file changes from Notification service can be delivered via Websocket or HTTP long polling.

Last updated
Was this helpful?