Open pchainho opened 7 years ago
To clarify these questions:
the StorageManager constructor would have the RuntimeURL and msg bus as input parameters
the Storage Manager would have the address: hyperty-runtime://<runtime-instance-identifier>/storage
the Syncher owner is the Storage Manager Address
Evaluate the implementation of this feature with dexie.syncable.
Initial notes:
backup
to syncher.create(..)
to enable backup feature for the created Data Object.remoteStorage
option to create a DB synched with a remote storage. Use Dexie related sync mechanisms at Storage Manager implementation of toolkit and browser runtimecreateSyncDB
As discussed here the idea is to have a generic Databackup Service to backup user's core data and also sync data between different runtimes even if the runtimes are not simultaneously connected eg policies, contacts, dataobjects, etc
The proposal is to use the data sync framework with a databackup objects. The Storage Manager would be extended (the set() function) to be the reporter of Databackup objects and the Databackup Observer hyperty would run in the Nodejs Runtime updating the storage manager every time there is a change performed by the reporter. All users' runtime would also be observers of these databackup objects in order to ensure complete sync among them. When a new runtime is instantiated it will resume the Dataobjects sync with the most updated versions from the Databackup observers.
The User should be able to set the Databackup service provider by using the Runtime Admin GUI, similar to the IdP. In this way the user also has the power to decide whom to trust his own data.
It should also be noted that existing (legacy) Cloud based backup services (like dropbox, google drive, etc) can also be integrated by using the legacy interworking framework ie only appropriate IWProtostub and IWIdpProxy have to be provided with no impact on other components.
This is a quite powerful feature that would require a minimum development effort.
Additional details: