StackSync is a scalable open source Personal Cloud that implements the basic components to create a synchronization tool.
In general terms, StackSync can be divided into three main blocks: clients (desktop and mobile), synchronization service (SyncService) and storage service (Swift, Amazon S3, FTP...). An overview of the architecture with the main components and their interaction is shown in the following image.
The StackSync client and the SyncService interact through the communication middleware called ObjectMQ. The sync service interacts with the metadata database. The StackSync client directly interacts with the storage back-end to upload and download files.
As storage back-end we are using OpenStack Swift, an open source cloud storage software where you can store and retrieve lots of data in virtual containers. It's based on the Cloud Files offering from Rackspace. But it is also possible to use other storage back-ends, such as a FTP server or S3.
The source code is available at the GitHub's project page: https://github.com/stacksync
Do you want to try StackSync? Request access to our testing servers at http://stacksync.com
Documentation can be found at http://stacksync.org