Python implementation of the Maestro data synchronization framework.
Maestro is a framework for two-way data synchronization accross distributed data sources. In essence, it lets you keep multiple databases in sync.
Maestro uses a concept called vector clocks to keep the data in sync. Each node that participates in the synchronization keeps a log of all changes made to it. This log is then used to propagate the changes across the nodes.
This library was created for a particular purpose: being able to synchronize data between a Cloud Firestore database and a Django application. The purpose was to leverage Firebase's offline sync capabilities on mobile while still being able to use Django as a backend.
It currently is able to synchronize data between Django (and all databases it supports), Firestore and MongoDB.