модуль 6 из 6 · Акт III · ~30 мин · 7 решений
сцена
Понедельник. Иван шёл в переговорку начинать неудобный разговор — но Тимур его опередил: уже разворачивает на экране трейс одного-единственного оформления заказа.
Смотри, что я откопал, пока гонял задержки. Один заказ — и вот, сорок сетевых вызовов между сервисом Курьеров и сервисом Заказов. Сорок. На каждый заказ.
Иван листает трейс. Заказы спрашивают Курьеров: свободен ли курьер в районе? какой ближайший слот? почём доставка? успеет ли к слоту? — и так по кругу, туда-сюда, пока не соберётся один заказ.
(с нескрываемым удовольствием) Ну что, доигрались в микросервисы? Я предупреждал. Раньше это был один вызов метода внутри процесса — наносекунды. Теперь сорок раундтрипов через пол-датацентра, да ещё поверх всего, что мы неделю чинили: реплики, кворумы, таймауты.
У меня один вопрос. Почему оформить заказ стало сложнее, чем запустить спутник?
(медленно, глядя на трейс) А что, если мы их обратно сольём? Курьеров и Заказы — в один сервис.
В переговорке повисает тишина. Гена очень медленно поднимает бровь.
Было — один вызов метода внутри процесса. Стало — сорок раундтрипов по сети.