Посмотрел неплохой доклад на эту тему. Ожидал от него большей глубины, но у него неплохая подача и он описывает многие базовые вещи.

Вначале идет немного теории про разные виды “монолитов”, а потом разбираются собственно ошибки:

  1. Предполагать, что микросервисы всегда лучше монолита.
  2. Общие модели и/или общая база.
  3. Слишком большие микросервисы.
  4. Слишком маленькие микросервисы.
  5. Начинать построение нового продукта с микросервисной архитектуры.
  6. Связывание через инфраструктурный код (логгирование/авторизацию и т.п.).
  7. Использование синхронных вызовов между микросервисами.
  8. Обратно-несовместимые изменения в событиях.
  9. Отсутствие автоматизации релизов.
  10. Отсутствие инкапсуляции (когда микросервис слишком много знает о деталях реализации другого микросервиса).
  11. Несоответствие организационной структуры архитектуре продукта.