
<..> resulting in an application with three different data access solutions and different implementations of the same type of function depending on during which generation it was implemented.
https://www.infoq.com/news/2015/01/lava-layer-antipattern/
А все почему? а ведь есть разные способы сделать одну и ту же вещь. Здесь даже не проблема в языке (хотя возможность подстрекать использовать новые вещи), а скорее незаконченные миграции.
Был я в нескольких больших проектах и там как в анекдоте: v1 is deprecated, v2 is experimental.
Пожалуй я сейчас понял, почему некоторые архитекторы бежали в микросервисы: компоненты получались связанны только по http и не было видно дикой разницы между 2мя(и больше) подходами реализации.