Going Full Rewrite - The Incremental Way
After coming to the realization that our backend system cannot scale for much longer and that new features are very difficult to add, we decided to write it from scratch.
With hundreds of thousands of users actively engaging our system, we don’t have the privilege to start over and grow slowly.
We rewrote the applicative layers while still relying on the old data store and then wrote a new db and app stack layer, replacing the legacy one piece by piece.
We implemented a migration system that is always on, meaning that every change in the old system makes its way to the new system, making the two systems eventually equivalent.
I will discuss the challenges and lessons learned.