Skip to main content

Bulk jobs at a glance

Load order

OrderLoadBecause
1Reference dataBound attributes reject unknown codes
2EntitiesRelationships need both endpoints
3Relationships
4Run maintenanceBlocking keys and value frequencies
5Match
Match after loading, never during

The engine weighs how common each value is in your data. Mid-load those frequencies cover a fraction of the data, so values look rarer than they are and agreements score too high. Records merge on evidence later data would have weakened.

Job types

Nine: entity ingest and update; match index, run, and retier; data quality score; label recompute; assertion backfill and resolve.

Recompute types accept a tenant-wide scope, so "rescore everything" is one submission.

Statuses

StatusMeaning
Queued · RunningIn flight
CompletedEvery row succeeded
Completed with errorsFinished; some rows failed
FailedCould not complete
Dead letterExhausted retries
CancelledStopped by request

Check the status, not only the error count — a job that finished with failures has its own terminal status.

Resilience

How a job recovers depends on whether it can be split, and that is decided by its type rather than by anything you set:

Job kindSplit across workersIf a worker dies
Loading — ingest and updateNo. One worker, one pass.The whole job is requeued, and dead-lettered once its attempts run out
Recompute — matching, scoring, relationship workYes, into chunks workers claim independentlyAnother worker reclaims that chunk; at most that chunk is redone

Size a large load with the first row in mind, not the second.

For chunked jobs:

EventBehaviour
Worker stallsTwo independent liveness signals catch it
Worker returns after being reclaimedIts late writes are rejected, not applied

The last one is what prevents a returning worker silently corrupting the job's totals.

Backpressure

Work beyond capacity is rejected with a retry interval, not queued indefinitely. A queue that accepts everything grows until something worse happens.

Partial success is normal

Valid rows land; failures are recorded per row with a reason. Fix and resubmit only those.

Next


Last verified against commit 1e1de1ad (2026-08-03)