«Разбейте монолит на микросервисы» — один из самых вредных советов, которые можно услышать без контекста.

Монолит — это не плохо

Монолит — это простота. Один деплой, один процесс, простая отладка, транзакции из коробки.

Когда монолит правильный выбор:

  • Стартап с командой до 10 человек
  • Нет чёткой границы между доменами
  • Скорость разработки важнее масштабируемости

Когда микросервисы оправданы

  • Независимое масштабирование разных частей системы
  • Несколько команд, работающих параллельно
  • Разные требования к технологическому стеку
  • Разные SLA для разных компонентов

Правило Мартина Фаулера

«Не начинайте с микросервисов. Начните с монолита, хорошо спроектируйте границы модулей, и только потом — при наличии реальной необходимости — разбивайте.»

Практика

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

src/
├── modules/
│   ├── users/
│   ├── orders/
│   └── catalog/
└── shared/

Рефакторинг к микросервисам станет намного проще, когда границы уже проведены.