Understand AirSync

Key concepts and terminology

Understand sync units, runs, phases, workers, schemas and mappings before building a connector.

Use these terms to distinguish connector work from platform transformation and scheduling.

TermMeaning
External systemThe source or destination API, such as Asana
External sync unit (ESU)A selectable boundary of external data, such as a project or workspace
Sync unitThe configured synchronization of an external boundary with DevRev
Sync runA coordinated extraction cycle for a sync unit; a run can contain multiple invocations
InvocationOne incoming event, one worker execution and one phase outcome
ExtractionExternal system → DevRev
NormalizationExternal API response → connector's declared external record schema
Domain transformationExternal records → DevRev objects according to domain mapping
Loading / reverse syncDevRev changes → external system
DenormalizationLoading input → the external API's write payload
External domain metadata (EDM)Record types, fields, references and capability metadata for the external system
Initial domain mapping (IDM)Default recipes mapping external record types and fields into DevRev
Object mapperPersistent identity correspondence between an external record and a DevRev object
Connector stateApplication-owned cursor/progress data persisted by the SDK

How the terms fit together

A connection gives a connector access to an external system. The connector discovers external sync units, such as Asana projects. A user selects one and configures its synchronization with DevRev as a sync unit.

A sync run processes that unit through several phases. Each phase can require multiple worker invocations. For example, a data extraction worker can fetch one page, save a cursor and continue in a new invocation.

TermMeaning
ConnectionAuthorized credentials and configuration for accessing an external system
Snap-inThe installable DevRev package containing the connector's functions and configuration
PhaseA stage of synchronization, such as metadata extraction or attachment loading
WorkerConnector code that handles one phase invocation through an SDK adapter
AdapterSDK-provided access to the event, state, repositories and phase-specific helpers
Repository (repo)SDK buffer and uploader for one kind of extracted output
CheckpointSaved progress from which a later invocation can continue
Initial syncThe first extraction of the configured data range
Incremental syncExtraction of changes in a subsequent resolved time window
Historical syncExtraction of earlier history in additional windows
RecipeThe mapping configuration selected for a sync unit from the choices offered by the connector
SubtypeA DevRev type specialization used by an import to represent an external record type

For example, an Asana task response is normalized into the connector's task schema. A domain mapping then transforms that record into a DevRev object. The object mapper preserves the correspondence between their identities.

Next: How synchronization works.

Last updated on