Alexander Krivitskiy
А потом познакомился со thrift и кривым файлом описывающим интерфейсы разных компонент. Расширил один интерфейс в этом файле - пришлось перекомпилировать все компоненты, которые использовали этот файл, даже если они не использовали сам интерфейс.
А, вот ты к чему. Перекомпиляция всех компонентов мне кажется меньшим злом по сравнению с рантайм ошибкой, которая возникает только после деплоя.
Да, есть требования, которые склоняют к слабо связанным решениям, в каких-нибудь микросервисах, когда разные сервисы должны уметь эволюционировать независимо, и надо всегда соблюдать обратную совместимость, но! эта слабая связанность поддерживается довольно дорогой ценой набора интеграционных тестов.