You edit one paragraph in a 50 MB document and it syncs in a second. You upload a file your coworker already uploaded and it finishes instantly. Neither of these is magic. Both fall out of two ideas: break files into chunks, and address those chunks by their content. Once you see how file sync really works, cloud storage stops looking mysterious and starts looking like a clever application of hashing.
The core problem
Naive sync uploads the whole file every time anything changes. Change one byte in a large file and you resend all of it. Across many users and many edits, that wastes enormous bandwidth and storage, and it makes sync feel slow. The system has to answer two questions cheaply: what changed in this file, and have we seen this data before.
Key design decisions
Split files into chunks. Instead of treating a file as one blob, cut it into pieces, often a few megabytes each. Now a file is an ordered list of chunk references plus some metadata. When you edit the file, only the chunks that changed need to move. Sync one modified chunk, not the whole file.









