migrationsLinkuber.com ↗
Migrating Functionality Between Large-scale Production Systems Seamlessly
Uber moved authorization holds out of eight services by shadowing live traffic and diffing every call. Validation found dozens of mismatches before 0.25% of users moved.
Why we picked it · the editor's summary
Uber's payments team pulled authorization-hold logic out of eight backend microservices into one Auth service, at 14 million trips a day. They forwarded production traffic to the new service on separate queues, cached the payment providers' real responses in Redis, and checked that the new system built identical requests and state transitions. A few days of validation turned up dozens of mismatches; once it ran clean, users moved from 0.25% to 1%, 5% and 100%, one payment method at a time. The 2019 post ends with two rules worth copying: make the final cutover quick with no way back, because a rollback option gets misused until the migration never finishes, and fund the old debt as part of the project.
Comments
Loading comments…