Skip to main content
Problem: you need a source that reliably syncs large volumes of tickets from a REST API with cursor pagination, handles rate limiting gracefully, and logs partial failures without aborting the whole run. This is a tighter, production-hardened version of the pattern introduced in Data sources and sync. Read that tutorial first; this recipe assumes you are already familiar with the ExuluContextSource shape.

Complete source listing

The listing below is a self-contained module. Drop it in src/integrations/ticketing/ and import it into your context definition.
src/integrations/ticketing/source.ts
Then attach the source to your context:
src/contexts/index.ts

Production hardening notes

Incremental sync deep dive

Upsert matching, hash checks, and deletion semantics explained.

SQL source

Query rows from an external database with an updated_at watermark.

Data sources and sync tutorial

The full tutorial that introduces sources and the ExuluContextSource shape.