Common tropes in software for this:
* Switching from polling to push or vice versa
* Merging two overlapping systems into one
* Splitting one system into two
* Rewriting from language X to Y
* Moving from centralized to decentralized or vice versa
* Moving logic from one layer to another (eg smart client vs thin client)