теория
Разложим «сила XOR дистанция» на все четыре угла — так виднее, где именно живёт боль. Держи в голове одну таблицу:
| Сила ↓ · Дистанция → | малая дистанция | большая дистанция |
|---|---|---|
| сильная связь | когезия — хорошо | — плохо |
| слабая связь | — терпимо | развязано — хорошо |
Три угла из четырёх — жить можно. Сильная связь на малой дистанции — это обычная когезия: детали одной задачи лежат рядом, меняешь их вместе, и это удобно. Слабая связь на большой дистанции — идеал развязки: далёкие сервисы, знающие друг о друге самый минимум. Слабая связь на малой дистанции — лёгкая расточительность: намудрили с прослойками там, где хватило бы простоты, но путаница заперта в одном месте и наружу не течёт.
А вот один угол — по-настоящему опасен. Сильная связь + большая дистанция — это : куски, которые обязаны меняться вместе, разнесены по сервисам и командам. Каждое изменение теперь — созвон, согласование схемы, скоординированный релиз двух команд через сеть. Ты заплатил всю цену распределёнки и не получил её главного приза — независимости.
Вот зачем в формуле XOR: он ловит именно этот угол. Совпали «сильная» и «большая» — загорается красным. И вот зачем волатильность: если тот злополучный угол почти не меняется, красным он горит тускло — можно потерпеть. Поэтому резать в первую очередь стоит там, где совпадение силы и дистанции встречается с высокой волатильностью. Проверим на живом кандидате — совет как раз подкинул следующий.