# Telemetry Event Replay

Phase 72.5.1.11 adds `@v2/telemetry-event-replay`, the historical replay path
for re-ingesting `warehouse.v2_telemetry.events` through updated telemetry
pipeline code.

## Replay Flow

`runTelemetryEventReplayOnce` pulls bounded warehouse rows from a
`TelemetryReplaySource`, validates each row, reconstructs `TelemetryEvent`
records with `reconstructTelemetryEventFromWarehouseRow`, and groups them with
`buildTelemetryReplayBatchesFromRows`. Replay batches use deterministic UUIDs,
the `v2-telemetry-event-replay` producer, preserved event IDs, and
`offlineReplay: true`.

`TelemetryIngestionEndpointReplayTarget` submits each replay batch to the normal
`/v2/telemetry/ingest` endpoint, so updated ingestion, queue, transform, and
warehouse code receive the same `TelemetryEventBatch` contract as live traffic.

## Safety

Payload JSON must parse to scalar telemetry payload values and match the stored
payload SHA-256 before replay. Invalid rows are sent to `deadLetter` and do not
block valid rows in the same run. Replay is bounded by `maxRowsPerRun` and
`maxEventsPerReplayBatch` so historical backfills can be chunked safely.

Targeted verification:

```bash
pnpm --filter @v2/telemetry-event-replay run typecheck
pnpm --filter @v2/telemetry-event-replay run test
python V2/ue/Tools/check-v2-telemetry-event-replay.py
```
