Overview

Rattail provides a “datasync” daemon, which is meant to run in the background and handle automatic sync of data between systems in “near real-time”.

The datasync daemon will “watch” some system(s) for changes, and any found are then “consumed” by other system(s). The daemon spawns a separate thread for each watcher, as well as for each consumer. There is no limit to how many watchers or consumers you configure, beyond machine resources etc.

Whereas an importer can be thought of as a “full sync” between systems (see Data Import / Export), the datasync is more of a “single record sync” - where each record changed in a given system, will be synced individually to the consumer system(s).

Each datasync consumer ideally will “correspond” to, and leverage, an existing importer (or exporter). The consumer may need some extra logic to facilitate this, but then the importer can be responsible for the actual record sync. This means the actual “sync” logic is defined only once, and is effectively shared.