← All work

Sportland · Scandiweb · Backend engineer · 2026

Migrating a live customer balance

Old and new running in parallel until nothing was left behind

The problem

Sportland's loyalty token had to be replaced with a new one. Loyalty balances are customers' money in every way that matters to a customer, and the platform was live throughout, so the failure mode was not downtime. It was someone opening their account and finding a number that had quietly changed.

What I did

I refused the hard cutover. First a run against staging with a comparable dataset, so the migration met realistic data before it met real data. Then old and new tokens running in parallel, migrating gradually, so at every point there was a working system and a way back rather than a single irreversible switch.

The outcome

Everything moved across with no cutover event, and no window in which a customer's balance depended on one script finishing correctly.

Built with

  • PHP
  • Magento 2
  • MySQL