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