I want to know whether client-server or peer-to-peer architecture is used by dropbox.
Here my doubt lies:
Suppose we have two systems which are synced via dropbox.
System1: dropbox > Folder_A > file_1
System2: dropbox > Folder_A > file_1
Initially both are synced. Suppose now, User on System1 adds a file_2 in Folder_A. Now this file gets uploaded to dropbox server. But my question is how does server notifies System2 about file_2.
I am seeing Observer Pattern being used here. But Is Pull or Push mechanism used ??
Point1: Does dropbox client on System2 polls dropbox server after some interval to get updates.
Point2: Dropbox server pushes the file on system2 itself.
Point3: All systems including dropbox central system is considered as a peer. peer-to-peer network is formed. dropbox central peer controls which file to be sent to which system.
PS: My question is not specific to dropbox but all the file sync service provider sites. I just used dropbox as reference.
I suspect a pull mechanism is used as there are too many firewall issues in push this article strongly suggests that pull is used. Of course, the easiest way to be sure would be to look at a wireshark trace.