Features

  • Does not require any change to the source data model(s) (e.g. no need to add a last_updated column)
  • Multi-source, with ability to merge or aggregate data, and optionally set merge/aggregation constraints
  • Able to handle several data types, with link (foreign keys) between them, and to enforce integrity constraints
  • Able to transform data with Jinja filters in configuration files: no need to edit some Python code
  • Clean error handling, to avoid synchronization problems, and an optional mechanism of error auto remediation
  • Offer a trashbin on clients for removed data
  • Insensitive to unavailability and errors on each link (source, message bus, target)
  • Easy to extend by design. All following items are implemented as plugins (list of existing plugins):
    • Datasources
    • Attribute filters (data filters)
    • Clients (targets)
    • Messagebus
  • Changes to the datamodel are easy and safe to integrate and propagate, whether on the server or on the clients