Migrations - The Hardest Actual Problem in Computer Science • Matt Ranney • YOW! 2022
Cool. speech Matt Ranney, Principal Engineer from DoorDash For the past couple of years, he has been engaged in a big migration to DoorDash and is willing to share his thoughts. Matt raises the issue that migration is difficult and nobody wants to do it. Everyone prefers to work in greenfield. Then he goes over the following questions.
- What is migration?
- Why are they complicated? Talks about migration to DoorDash (Explain why it is important) Share the secret to making changes to the system that should work all the time (always-on) This is the dual writing approach. What problems are possible with this approach (Auto-increment keys, what to do if systems with dual-write give different answers) How People Come to Using a Shared Database for New and Old Service (And how it hurts to unravel.) Next he shares tips on how to make migration easier Continues to talk about how good abstractions help in this.
The book concludes with the following insights into why migration is so difficult. Everyone creates their own tuning for migration. It is difficult to justify investing in good abstractions compared to product features There is a cultural bias against premature optimization. (This often leads to tactical programming.) Learned helplessness with complex migrations Cool engineers aren't inspired by the idea of migration - they think it might be bad for their careers or just not as interesting. People involved in migration are often not rewarded for their achievements.
P.S. Ten years ago, I had a similar project about the migration of the old system to the new rails, where I came as a lead. This project lasted more than a year before switching to a new solution, and then we added a file to the new solution for another six months and only then came to a stable creation of new features. Therefore, I understand the theses of the author very well, and I will also write an article about my experience later:)
#SoftwareDevelopment #SoftwareArchitecture #Conference #SystemDesign