Разбор архитектуры микросервисов в Claude: где граница сервиса проходит неверно
Промпт для Claude: проверить проектируемую архитектуру на связанность сервисов и распределённые транзакции, с честным ответом «здесь монолит уместнее».
Пример результата
Отдавал реальный проект внутреннего сервиса бронирования. Пятый пункт отработал честнее всего: Claude прямо написал, что при 200 бронированиях в день и команде из трёх человек четыре сервиса — это плата за архитектуру, которой не нужен масштаб, и предложил модульный монолит с чёткими границами модулей. Именно этого ответа я и опасался, и он оказался верным. По границам: указал, что booking и calendar-sync будут меняться всегда вместе, потому что оба знают о структуре брони. Разрез действительно был проведён по технической схожести. Раздел про данные показал место с распределённой транзакцией, которое я не заметил: отмена брони должна одновременно снимать событие в календаре и слать уведомление. Предложенный обход через outbox-таблицу с последующей публикацией события выглядит рабочим. Слабое место разбора: оценка накладных расходов на инфраструктуру дана общими словами — «понадобится централизованное логирование и трейсинг», без прикидки, сколько это стоит времени. Для решения «делать или нет» цифры были бы полезнее. И ещё: совет по стеку не учёл, что RabbitMQ у нас уже есть под другую задачу — модель предложила его «добавить».