advanced

Shared kernel risks

Ограничивайте shared libraries и models, потому что shared kernel может вернуть independent services к coordinated releases.

Shared kernel — общая библиотека, DTO package или ORM models у многих сервисов — воссоздаёт compile-time и release coupling. Одно breaking change требует coordinated deploys, уничтожая независимость microservices.

Ограничьте shared code стабильными редко меняющимися примитивами: IDs, money types, tracing helpers — не business workflows.

На интервью: спорьте, что в shared library, а что в copied adapter; опишите versioning для internal packages.

Типовые ошибки: модуль «common» с растущей business logic; events только в shared JARs; отсутствие semver у internal libs.

Компромисс — гибкость против сложности: знайте, когда достаточно более простого пути.

Чеклист:

  • Аудит shared packages на business logic creep.
  • Версионируйте internal libraries с compatibility guarantees.
  • Раннее дублирование лучше неверной абстракции.
  • Заменяйте shared kernels опубликованными contracts.