Operator guideEN

Reporting / Identity Graph Backfill

Operator guide for the Identity Graph backfill job runner: start a bounded historical user sync, watch progress, and stop a running job.

How to use this guide

Start with the main guide

Follow the explanation and examples first. Extra definitions and formulas are available below when you need them.

What this screen is for

Use Identity Graph Backfill to push historical users into the Identity Graph in controlled, bounded runs. This is a job runner, not a report. The page exists so an authorized operator can start a backfill, watch each job make progress, and stop a job that is running.

This screen does not change realtime sync. New signups and logins continue to flow into the Identity Graph on their own. The backfill only catches up users that were created before, or missed by, realtime sync.

Who can open it

Access is limited to a small allow-list of named admins. If your account is not on that list, the page shows a warning and no controls. The same restriction is enforced when actions run, so a non-authorized account cannot start, stop, or list jobs through another path.

What operators can do here

  • start a bounded run for a job key, with batch size, pacing, and a runtime cap
  • run a dry run that scans candidate users without writing anything to the Identity Graph
  • stop a running, stopping, or paused job
  • refresh the jobs table and watch processed, failed, and skipped counts move
  • read the last error and the most recent per-user failures for a job

How a run behaves

  • A run is bounded. By default it stops itself after the runtime cap is reached, then can auto-resume from where it left off.
  • Re-running the same job key continues from the saved cursor rather than starting over. Turn on Reset cursor only when you want to scan from the beginning again.
  • In full mode the runner retries old failures first (when Retry failed before cursor is on), then resumes the saved cursor.
  • Stopping is cooperative. A stop request pauses the runner after it finishes the current user or checkpoint, so a job does not stop instantly.

What a dry run does

  • Dry run scans the same candidate users a real run would, but does not write any user into the Identity Graph. Every scanned user is counted as skipped with reason dry-run.
  • A dry run does not require the Identity Graph connection to be configured, so it is safe to use as a rehearsal or to estimate how many users a run would touch.
  • When you leave the job key blank, a dry run is recorded under a separate dry-run job key so it never disturbs the real job's saved cursor.

When operators usually open this screen

  • a batch of historical users needs to be loaded into the Identity Graph
  • a previous backfill paused or failed and needs to be resumed or stopped
  • you want to rehearse a run with a dry run before committing
  • you need to confirm how far a long-running backfill has progressed

Common confusion

  • This page does not edit user data. It only re-sends existing users into the Identity Graph.
  • The runtime cap is a safety bound, not a failure. A job that stops on the cap is expected to auto-resume.
  • A stop is a request, not an instant kill. The status moves to stopping first, then stopped.
  • The progress label counts everything scanned (processed plus failed plus skipped) and shows the cursor position, not just successful writes.
  • Dry-run counts appear as skipped, not processed, because nothing was written.
More details

Definitions and formulas

Open only the section you need. The relevant section opens automatically when you request help for a specific item on screen.

Calculations8 topicsOpen details

Total scanned

Counts every user examined by a backfill job, not only successful Identity Graph writes.

Formula
processedCount + failedCount + skippedCount

Progress label

Explains the table progress text shown to operators.

Presentation Transform
Render processedCount + failedCount + skippedCount as total scanned, then append the saved lastUserId cursor.

Runtime cap

The max runtime is a safety pause boundary, not a failure condition.

Formula
UI-started runs use a bounded max runtime; when the cap is reached the job can pause and auto-resume from its saved cursor.

Dry-run counting

Dry runs scan candidate users but do not write to Identity Graph, so scanned users are counted as skipped.

Formula
When dryRun is true, per-user sync short-circuits and records skipped reason dry-run instead of processed.

Resume cursor

Reusing the same job key continues from saved state unless the cursor is intentionally reset.

Formula
Existing job state supplies the cursor; resetCursor clears it so the scan starts from the beginning again.

Active runs

Count of in-process runs currently tracked by the service instance, not a historical count from the jobs table.

Formula
activeRuns is built from the process-local active backfill runs map.

Visible jobs total

Total jobs shown by the table pagination after hidden statuses and legacy job keys are excluded.

Formula
Count rows from public.identity_graph_backfill_jobs where status is not hidden and job key is not legacy.

Stop state

Stop is a cooperative request; a running job can move through stopping before it becomes stopped.

Formula
Running jobs are marked stopping; pending, paused, finished, and failed jobs are marked stopped.
Summary cards4 topicsOpen details

Jobs

Total number of recorded backfill jobs.

Data Type
integer
Editable
false

Active Runs

How many runs are currently active in this process.

Data Type
integer
Editable
false

Default Batch

Default batch size suggested by the backend.

Data Type
integer
Editable
false

Page Runtime Cap

Default runtime cap in ms applied to page-started runs.

Data Type
integer
Editable
false
More help

Related pages

Affiliate Deals / Dashboard

Affiliate deal cohort report that period-bounds registrations, then combines the selected players with cumulative deposit and linked-event values.

Affiliates / Affiliate Deals

Operator guide for affiliate-deal records, their create/edit flow, and the performance dashboard that compares contract settings with delivered traffic and revenue metrics.

MKT Groups

Operator guide to grouping raw marketing tracking tags into stable reporting groups by explicit membership and automatic text rules.

Players / Fraud Detection

Fraud-detection tab inside the player workspace with MaxMind risk assessment, related fraud-account reports, IP analysis, and Identity Graph filtering.

Reporting

Canonical entrypoint for standalone reporting pages outside the main Dashboard widgets.

Reporting / Affiliate Events Report

Audit log of the events and saved amounts the platform sent to the affiliate system, with per-currency successful totals, CSV export, suspicious-traffic visibility, and a guarded force-send override.