Incremental sync (also called delta sync or CDC) is a data integration pattern where only records changed since the last sync are extracted and loaded. It contrasts with full refresh, which re-extracts all records every cycle. For NetSuite integrations, incremental sync uses lastmodifieddate or transaction-date filters via SuiteQL to fetch deltas, dramatically reducing API consumption, network transfer, and warehouse compute.
How it works
- High-water mark (HWM): the connector tracks the maximum
lastmodifieddatefrom the last successful sync - Query delta:
SELECT * FROM transaction WHERE lastmodifieddate > '2026-05-19 12:00:00' - Apply changes: insert new rows, update existing rows by primary key (UPSERT)
- Advance HWM: store the new max timestamp for next run
- Handle late-arriving data: overlap window (e.g., re-query last 24h) to catch records modified after extraction but before HWM advance
Incremental vs full refresh
| Aspect | Full refresh | Incremental sync |
|---|---|---|
| Records fetched | All | Changed only |
| API consumption | High (re-queries everything) | Low |
| Sync time | Slow at scale | Fast |
| Frequency feasible | Daily / weekly | Every 15 minutes |
| Best for | Initial backfill, schema changes, drift checks | Production daily / hourly |
Common gotchas
- Late-arriving updates: records modified between extraction and HWM advance can be missed. Mitigate with overlap window or transactional HWM update.
- Soft deletes: NetSuite typically sets
isinactive = Trather than hard-deleting. Incremental sync must query the inactive flag separately. - Hard deletes: rare in NetSuite. Detection requires periodic full-set reconciliation (compare ID sets between source and destination).
- Out-of-order timestamps: some NetSuite operations (e.g., bulk imports, system migrations) can produce
lastmodifieddatevalues older than the current HWM. Handle by re-querying a wider overlap window after such events. - OneWorld subsidiary boundaries: incremental sync must track HWM per subsidiary for multi-currency translation consistency.
How Acterys handles it
Acterys NetSuite Sync uses incremental sync by default. Configurable frequency from every 15 minutes to once per day. The connector tracks high-water marks per table, manages late-arriving updates with a configurable overlap window, handles OneWorld subsidiary partitioning, and falls back to targeted full refresh automatically when schema changes are detected. Customers also get retry logic with exponential backoff for NetSuite rate-limit responses.
Related glossary entries
- SuiteQL — query language used for incremental fetches
- REST Web Services — transport layer
- ELT — the broader pattern incremental sync fits into