File Sync. One of the most talked about and underestimated integration patterns.
Here is a little checklist of questions to answer before you start building.
- What systems are we syncing?
- Which system is your single source of truth?
- One time or ongoing?
- What is the scope of the sync (which folders, subfolders and file types)?
- What is the scale (how many and how large folders, subfolders and files)?
- How close to a real-time sync does it need to get?
- Which direction (one way, two way, partial — e.g. metadata only)?
- If both sides change one file, who wins?
- Which events (create, update, delete, move)?
- What does "update" mean (new full version, file replaced without versioning, both files remain but are name-versioned)?
- How should user permissions be handled?
(Would you add another one?)
When these get answered, then we know if we are building a kite, or a rocket ship.