{
  "schema": "vedokrok.public-item.v1",
  "release_id": "MHC-RPUB-20260920-75ad787a",
  "url": "/knowledge/reconcile-what-changed-after-a-bulk-write",
  "id": "MHC-D-RESEARCH-0350",
  "version": "0.1.0",
  "title": "Reconcile what changed after a bulk write",
  "summary": "'Job finished' is a process status, not a data-quality result.",
  "kind": "protocol",
  "body": "Compare the authoritative post-write state with the intended mutation set. Check totals, missing keys, unexpected keys, critical fields and a sample of downstream effects. Classify mismatches instead of merely counting them. Preserve the reconciliation artifact so the team can repair the exact exceptions rather than rerun the whole batch blindly.",
  "limits": [
    "Reconciliation is only as strong as the intended-state specification; an incorrect source file can reconcile perfectly to the wrong goal."
  ],
  "topics": [
    "union-safe-change-operations"
  ],
  "intents": [],
  "source_ids": [
    "RS-5D6BA8DCC62D671F"
  ],
  "evidence": [
    {
      "claim": "Google SRE recommends comparing canary or dry-run pipeline results with the live pipeline to check for data differences before expansion.",
      "source_id": "RS-5D6BA8DCC62D671F",
      "role": "supports",
      "note": "Reconciliation only catches differences represented by the comparison logic; missing invariants remain missing.",
      "locator": "Verification of canary or preproduction environment"
    }
  ],
  "use_when": [
    "A large update reports technical completion but business correctness still needs proof."
  ],
  "avoid_when": [
    "Reconciliation is only as strong as the intended-state specification; an incorrect source file can reconcile perfectly to the wrong goal."
  ],
  "example": "After 20,000 customer updates, compare the target table and downstream partner data with the approved input rather than trusting the success message.",
  "check": "You can state exactly how many records matched, failed, were missed or changed unexpectedly.",
  "steps": [
    "Every intended key is accounted for.",
    "Unexpected changed keys are detected.",
    "Critical before/after fields match the approved mutation.",
    "Exceptions are classified with enough detail to repair selectively.",
    "Downstream replication or derived state is checked where it is part of the intended outcome."
  ],
  "sources": [
    {
      "id": "RS-5D6BA8DCC62D671F",
      "title": "Improve and Optimize Data Processing Pipelines",
      "url": "https://sre.google/workbook/data-processing/"
    }
  ],
  "relations": [],
  "collections": [
    {
      "id": "RC-4F77BDBBF2481574",
      "title": "Change live systems without turning one mistake into a large one",
      "url": "/collections/change-live-systems-without-turning-one-mistake-into-a-large-one"
    }
  ]
}
