Meridian Field Services: instructional example, not project evidence
Source to target per entity, volumes, classes, owners; no blank cells. Exclusions carry rationale and a retention answer for what stays behind.
| Entity | Source → target | Volume | Class | Owner |
|---|---|---|---|---|
| Job master | Legacy dispatch job tables → Job[1] (status-code mapping per the closed set) | 180 k rows (7 y) | CONFIDENTIAL (labels[2]) | R. Singh |
| Assignment history | Legacy → Assignment[1] | 640 k rows | CONFIDENTIAL: clause 14's seven years drives inclusion (BR-06[3]) | R. Singh |
| Technician roster | NOT migrated: the HR directory remains authoritative (INT-5[4]); the board reads its sync; rationale recorded | n/a | ||
| Legacy radio logs | NOT migrated: no target entity, no retention obligation past the legacy system's own schedule (retention[2]); stays under enterprise IT's retention | n/a | ||
| Positions | Nothing to migrate: the feed is live-only and the 30-day purge outruns any backfill value; stated so the absence is a claim | n/a | ||
Freeze & delta: the nightly INT-3 sync keeps the target current to yesterday; the cutover window freezes legacy job WRITES; same-day deltas replay from the legacy change log; catch-up bound of 2 h of deltas at observed rates.
What: big-bang moves everything in one window; phased moves entity groups; parallel-run runs both systems live with comparison; trickle streams continuously. Why considered: the INT-3 nightly sync ALREADY IS a parallel-run in miniature (INT-3[5]): the target has carried the job master for weeks, reconciled nightly, comparison evidence big-bang lacks; full trickle engineering buys nothing a 2-hour delta replay does not. Who & how: E. Sandoval with R. Singh, walked against the seam design August 5 (migration approach[6]). Findings: phased wins. Assignments and jobs move in the cutover window; the roster never moves; INT-3 retires at cutover per its sunset (INT-3 sunset[4]).
| Environment | Seed | Rule |
|---|---|---|
| dev | Synthetic fleet: 300 vehicles, generated (the perf dataset's ancestor, datasets[7]) | Production personal data in dev is prohibited: hard rule, no exception path |
| staging | Masked production-shaped jobs and assignments: names and addresses masked per their labels (labels[2]); positions synthetic ALWAYS; RESTRICTED never leaves production even masked (the conservative read, decided with N. Duval) |
Numbers, not vibes: every ladder level carries its criterion; the window is the rehearsal's measured duration.
| Level | Check | Criterion |
|---|---|---|
| 1 | Row counts + per-status aggregates | exact match |
| 2 | Record-level comparison on business keys | 100% presence; mismatches bucketed |
| 3 | Field-level SHA-256 over mapped columns; 5% random sample + every transformed row | zero unexplained mismatches (the status-code mapping's expected diffs are pre-registered) |
Dry-run: full rehearsal on the staging copy September 20, INCLUDING the deliberate rollback to source. Measured: migration 3 h 10 m, rollback 40 m; the runbook window is 4 h with the rehearsed buffer, not an estimate. Post-cutover: application-level checks (job counts on the board, assignment history renders, the response clock derives per BR-04[3]) instantiate as cutover checks[8].
The point of no return is a named step; a failed gate is an automatic no-go. The next window is pre-booked, so no-go costs a week, not a debate.
Point of no return: the write-authority transfer (the new system becomes the job master; legacy intake stops). Before it, rollback is restore-and-resync (40 rehearsed minutes). After it, forward-fix only, through the quarantine path (FLW-03 exception[9]). Fallback-to-source bounded: 24 h post-cutover; past it the delta volume makes restore worse than forward-fix, measured from the rehearsal.
| Gate | Criterion (numeric) | Owner |
|---|---|---|
| G1 | Reconciliation ladder all-green (§3 criteria) | R. Singh |
| G2 | The DV cutover checks pass (checks[8]) | Release owner |
| G3 | The 4-hour window holds against the rehearsed timeline | E. Sandoval |
| Time | Step | Owner | Duration (rehearsed) |
|---|---|---|---|
| 02:00 | Freeze legacy writes | R. Singh | 10 m |
| 02:10 | Final delta replay | Engineer | 30 m |
| 02:40 | Reconciliation ladder | R. Singh | 45 m |
| 03:25 | Gates G1 / G2 | Owners above | 15 m |
| 03:40 | Write-authority transfer: THE POINT OF NO RETURN | E. Sandoval | 10 m |
| 03:50 | DV cutover checks | Release owner | 30 m |
| 04:20 | INT-3 retirement flag (sunset[4]) | Engineer | 10 m |
| 06:00 | Dispatch hours open; on-call doubled | On-call | n/a |
| Question | Owner | Answer by | Blocks |
|---|---|---|---|
| Does the legacy change log retain deltas long enough if the cutover slips a week past the freeze rehearsal (retention on the legacy side is enterprise IT's)? | R. Singh | Sep 12, 2026 | The catch-up bound only |