JotsuDocs
Tutorialadvanced·60 minutes

Build an application that synchronizes external data

Build a Jotsu application that synchronizes paginated external API data safely with schedules, idempotent updates, and useful logs.

What you will build

An application that imports records from an external API and reports every synchronization run.

Part 1: Plan the application

Define an external stable ID, mapped fields, update rules, deletion policy, and a SyncRun record with timestamps, counts, cursor, and outcome.

Part 2: Connect the API

Store the credential as a secret. Fetch one page on the server, validate it, and display a read-only preview.

At this point, one validated API page appears without storing records.

Part 3: Store records idempotently

Upsert by external ID and record created, updated, skipped, and failed counts. Repeating the same page must not create duplicates.

Part 4: Add pagination and scheduling

Handle the API’s cursor, page, or offset scheme. Add a scheduled job in code with bounded retries and rate-limit backoff. Include a development-only run-now path.

At this point, two identical runs produce the same records and separate successful run history.

Part 5: Test failures

Test an expired credential, rate limit, malformed record, and interrupted page. Confirm each failure is logged and can resume safely.

Part 6: Deploy

Deploy with production credentials, invoke one controlled run, and confirm its SyncRun result.

Extend the application

Add webhook updates, drift reports, or a manual reconciliation queue.