Concepts

Import vs. Export

From the framework’s perspective, everything is actually an “import” and never an “export” per se, i.e. data always flows from a source and to a destination - or in other words, the “local” side always imports from the “host” side. But see Data Exporters for more about that.

Importer vs. Import Handler

All import (and export) tasks are accomplished by way of 2 things:

The “importer” is responsible for reading data from one place and writing it to another place. But it cannot run itself, it just contains the e.g. table-specific read/write logic.

The “import handler” is responsible for running one or more importers. It also is (usually) responsible for “transaction-level” logic, e.g. connecting to a database, and ultimately committing that transaction. It usually has no table-specific logic, as that is the importer’s job.

For instance you might want to import all customers and products from your POS into Rattail; this would require something like:

  • import handler for POS -> Rattail

  • importer for Customer data

  • importer for Product data