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.