Data-quality incidents and replay#

Level: Intermediate

You will: inject explicit data faults, replay a bounded interval, and

repair downstream projections without rewriting source truth. Before you start: a generated run and the Concepts guide.

Services: None; service-backed checks are optional.

Quality faults are applied after business generation, so the canonical source and oracle remain available for investigation. Select a profile or set one fault explicitly:

quality:
  profile: hostile
  duplicate_event_probability: 0.03
  late_event_probability: 0.20
  out_of_order_probability: 0.20
  outages:
    - source: payment_events
      from_time: 2026-01-01T10:00:00Z
      to_time: 2026-01-01T10:15:00Z
      behavior: BUFFER_AND_FLUSH

Inspect quality_fault_counts, quality_fault_rates, fault_audit, and quality_diagnostics. Validate the repaired projection with the ledger, payment lifecycle, label-observation, graph, and schema validators.

Replay is read-only and preserves source identity:

RUN_ID=RUN-...

fraudtwin replay --run-id "$RUN_ID" \
  --from 2026-01-01T10:00:00Z --to 2026-01-01T11:00:00Z \
  --order original_delivery --output-dir runs/replay

Use the observable view for operational behavior and the oracle view only for offline diagnosis. A repair may rebuild a downstream table or deduplicate a stream, but it must never rewrite the canonical event or latent fraud truth.

Next#

Continue with Data and evaluation workflows or Drift and shift.