File Storage and Sync diagram template
Chunked file sync with a metadata service, block store and change notifications.
About this design
A Dropbox style product avoids re-uploading whole files by cutting them into content-addressed blocks. The client hashes each block and asks the sync service which ones the server already has, so only new or changed blocks travel over the network, and identical blocks across users are stored once. Blocks go to object storage; the file tree, versions and sharing permissions live in a metadata database that is the real source of truth. When something changes, the metadata service writes an event and a notification service tells other devices to pull the diff over a long-lived connection. This template highlights the separation between cheap bulk bytes and small, consistent metadata. Discuss conflict handling when two devices edit offline, delta compression, soft delete for version history, and encryption at rest versus true end-to-end encryption.
Diagram as text
This is the source of the diagram, in the ArchBoard diagram DSL. Paste it into Tools, Diagram from text to rebuild or change it.
title "File sync"
direction LR
client "Desktop client" -> lb "Load balancer" -> service sync "Sync service"
sync -> db postgres "File metadata"
sync -> storage s3 "Block store"
sync -> queue kafka "Change events" -> service notify "Notification service"
notify -> desktop-client
sync -> cache redis "Block index"