# How Does Arcamatic Know Which Files Have Changed?

**Arcamatic Client** goes through it's local files and generate hashes of all target files and then sends that list of hashes to the **Arcamatic Server** to compare with a similar list of it's own.  It then generates a list of files that have changed and share that with the **Arcamatic Client** so they both know which files need to be transferred in order to synchronize the target directories.

This way, **Arcamatic** only send files that are missing or different.  **Arcamatic** also compresses each file before sending it in order to reduce network bandwidth used.
