Вопрос и правда достаточно тяжелый и абстрактный...
Например миграция большого проекта со старого фреймворка может идти тяжело -- впиливанием некого когда, который определяет куда чего направлять и кусок за куском переписывается... с уадлением старого кода
Может быть вам нужна какая-то библиотека просто подобновить проект -- возможно нужно немного кода переписать, например я в старую ЦМС внедрял недавно миграции и диспетчер событий -- минимальная работа (относительно архитектуры)...
Почитать вряд ли найдете, тут везде уникальный путь, зависит от планов и навыков