Skip to content

Move subscription infrastructure without moving blind.

Catalogue mapping, historical backfill, live parity, and cutover should be separate decisions. CherrySub gives each phase its own evidence, owner, and rollback posture.

The previous path remains readable through the observation window.

Inventory

18 / 18

Every active product has a destination.

Backfill

checksummed

History is counted before it is trusted.

Cutover

2 gates open

Traffic moves only after parity holds.

A migration plan with observable gates.

Each phase produces a measurable artifact. A discrepancy pauses the phase it belongs to without turning the entire move into a rollback decision.

Control plan
Inventory, backfill, mirror, cut over.
The old path remains authoritative while CherrySub proves catalogue coverage and live parity.
InventoryProducts and access rules
BackfillHistorical events
MirrorCompare live paths
Cut overOpen after gates
Rollback posture
The old path stays readable.
Cutover changes the active delivery path; it does not erase imported history or the comparison window.
Old endpoint retainedRead-only during observation7 days
Event IDs linkedCross-system trace preserved100%
Catalogue mapping
Every active product needs a destination.
Orphans block cutover visibly; inactive legacy products remain documented.
source productaccessstate
portra.pro.annualpromapped
portra_pro_monthpromapped
portra.team.yearlyteammapped
portra.legacy.monthreview
412 subscribers need a destinationCutover gate remains closed.
Live parity
Differences are a work queue, not a percentage alone.
Each mismatch keeps the two states, source events, and a likely explanation.
cus_42b8 · grace vs activeGoogle event delayed · 4m
cus_93ae · pro vs nonelegacy product unmapped
cus_a191 · team vs teammatched after backfill
Backfill ledger
Count the import before trusting it.
Chunk totals, source checksums, and unresolved rows remain visible after completion.
history import · completed 18 Aug 11:42 UTC
source_events       2,841,906
imported_events     2,841,906
checksum_match      true
duplicate_ids       0
unresolved_rows     12

Cut over after the gates hold, not when the project plan says Friday.

Catalogue coverage, history integrity, event parity, and delivery health each approve their own part of the move.

Calendar-driven cutover

A single deadline hides which part is actually ready.
Parity becomes a screenshot taken before launch.
Rollback means reconstructing what moved.

Evidence-driven cutover

Four independent gates stay inspectable.
Live mismatches remain an owned queue.
The previous path stays readable through observation.

Map the migration before moving live traffic.

Bring the catalogue and a history sample; leave with explicit gaps and a staged control plan.