This library is dedicated to ease synchronization of data between resources (database, etc.) at a high level of abstraction.
pip install b3j0f.sync
The global architecture is composed of three classes:
- Record: pivot data to persist in heterogeneous stores. Keep a transparent reference to stores in order to ensure easy synchronization and consistency among stores. - Store: Record such as a set of data with CRUD operations. CRUD operations are delegated to specific Accessors. To specialize to a database, CMDB, project management system, etc. depending on your needs. - Accessor: Record and implementation of record CRUD operations in a store.
Two optional classes are provided in order to ease the use of previous ones:
- Field: used to specify data content in records. - StoreRegistry: Record which permits to do CRUD and synchronization operations over several stores.
If you want to use this library to your own needs, you have to extend abstract classes with implementation of 6 CRUD methods for the Accessor.
The system does not use semantical mechanisms, therefore, the system is in a best effort mode instead to be exhaustive.
And you might override hash methods of records.
- `b3j0f.dmts`_: development management tool synchronizer.
- wait feedbacks during 6 months before passing it to a stable version.
- Cython implementation.