модуль 3 из 6 · Акт II · ~30 мин · 7 решений

сцена

Понедельник после того самого ретро. Марина у доски, и кружок вокруг «Платежей» так и не стёрли с пятницы.

Марина
Марина

Решено: первыми из монолита выходят Платежи. Свой ритм релизов, свой регламент, свои аудиторы — им давно тесно в общем деплое. Иван, спланируй, как их отрезать.

Иван
Иван

Отрезать — это же не «перенести папку с кодом в новый репозиторий»?

Гена
Гена

По-хорошему бы так. Код платежей и так лежит отдельным модулем: вынес, задеплоил отдельно — и готово.

Тимур
Тимур

Ага, а таблицы? Платежи пишут в ту же базу, что и Заказы. И списание с созданием заказа идут одной транзакцией — либо оба, либо ничего. Как ты это разорвёшь по сети?

Иван
Иван

(медленно) Вот в этом всё и дело. Пока Платежи были модулем внутри процесса, они молча пользовались чужими таблицами и общей транзакцией — и никто этого не замечал. Стоит вынести их за сеть — и всё это молчаливое знание придётся достать на свет и оформить явно. Вопрос не в том, где будет крутиться код. Вопрос — сколько знания Платежи утянут за собой через новую границу.

Иван открывает схему базы и считает, в скольких таблицах, которыми Платежи вовсе не владеют, встречается слово payment.

как сейчас · платежи вплетены в общую базу
пишетпишетобщие таблицы + одна транзакциязаказыплатежиpostgresqlодна база · общие таблицы
явный контрактнеявное знание

Пунктир — то, что придётся достать на свет: Платежи делят с Заказами и таблицы, и одну транзакцию.

← карта