Всем привет, на связи Юджин, (теперь уже) беспризорный backend-разработчик на Go. Сегодня я расскажу вам забавную и больную историю о том, как мы монолит распиливали. Кто-то, может, посмеётся, а может, найдёт в этом себя. Никого ничему не учу, потому что сам ничего не умею.  Настоящие имена и названия называть не буду, поэтому пройдёмся по условным обозначениям: Антон: наш технический директор, кофаундер стартапа Максим: наш тимлид Кирилл: главный менеджер, кофаундер Алексей: бэкендер Борис: инвестор Также хочу отметить, что я в крипте вообще не разбираюсь, так что не ожидайте от меня умных слов и комментариев по этому поводу, но, по словам Антона, проблем там тоже было немало.  Началось всё с того, тот самый хороший друг фуллстек-разработчик пригласил меня в околокриптостартап. Сам он туда попал с фриланса, когда выполнил несколько их заказов. На момент моего попадания в стартап (примерно 1-2 месяца после его зарождения) был написан монолитный бэкенд (Node.js + Fastify) и что-то похожее на фронтенд (React) - всё это написано за 1-2 месяца одним человеком в спешке. Всё работало прекрасно до момента, когда около нас начал образовываться второй проект, который писали другие разработчики на аутсорсе. Не хватало фич, которые в монолит запихнуть было очень тяжело. На тот момент команда увеличилась - и вот нас уже 3 программиста и 3 фронтендера. Каждый работал над своими частями проекта, никто никому не мешал, всем мешал только написанный в спешке бэкенд.  После недели обдумывания с 10 созвонами в день, мы решили переписать бэкенд на микросервисы - так и поддерживать проще, и обновления выкатывать, чтоб ничего не сломать.  Первые проблемы начались в момент, когда мы начали строить архитектуру. Каждый гнул свою линию и не очень хотел идти на компромисс. Максим хотел разбить достаточно простую логику на кучу-кучу микросервисов, где каждый сервис выполнял одну мизерную задачу. Я хотел разбить логику на чуть более большие куски, чтобы каждому досталось не больше двух-трёх сервисов, дабы не сойти с ума. Алексей для внутреннего общения сервисов хотел использовать gRPC, Я и Максим - RestAPI.  Наш техдир принял решение сбросить всю ответственность с себя тактически отступить и сказал: «делайте как хотите, я ни хрена не понимаю».  «Уютный стартап» — говорили они.  В итоге, каким-то образом, мы выбрали использовать RestAPI, но чтоб он выглядел как gRPC, и большие микросервисы. Принялись писать.  Писали сервисы по мере важности, постепенно заменяя логику в монолите на запросы к сервисам, всё по красоте, всё круто.  Основной проблемой в это время было убедить менеджерство в том, что переписать бэкенд на микросервисы это нам надо и без этого уже никуда. С большой неохотой, они согласились дать нам время на это, но при условии, что багфиксы и доработки уже существующего кода будут в приоритете.  Не буду долго расписывать весь процесс распила, но нам пришлось пару раз изменить архитектуру, где-то распилить ещё сильнее, где-то - объединить пару сервисов в один. Всё как обычно.  Где-то на середине Кирилл с Борисом подмышкой решили сделать пивот в обратную сторону и отменить половину идей, которые мы уже реализовали в старом бэкенде и начали реализовывать в новом. Снова пришлось переобдумывать архитектуру. В итоге, сервисов стало так мало, что половина разработчиков нам уже не нужна была - их перевели в другой проект, оставив здесь только одного фронта, одного бекендера и одного девопса, которого делили между собой сразу три проекта. Менеджерство в итоге решило, что и микросервисы уже не нужны, раз половину функционала вырезали. Ну а что, проект деньги приносит - зачем что-то новое добавлять? В итоге стартап так и остался с мизерной прибылью плавать где-то на просторах интернета, а мы просто сидим и смотрим на всё это.  Не говорю, что в стартапах работать не надо, но перед переходом в стартап, какими бы там не были зарплаты (к слову, платили в полтора раза больше, чем на прошлом месте работы) и условия - обращайте внимание на сам проект, на его перспективы и на фаундеров - умеют ли они вести бизнес и принимать осмысленные решения.  Всем спасибо за внимание, всем нормальных менеджеров и удачи в распиливании микросервисов.