Ответ
High Cohesion (высокая связность) в контексте микросервисной архитектуры означает, что каждый микросервис должен быть сфокусирован на выполнении одной четко определённой бизнес-возможности (business capability) или поддомена (bounded context). Все его компоненты (код, данные, конфигурация) тесно связаны между собой и работают для достижения этой единой цели.
Принцип на практике:
- Сервис "Заказы" (Order Service) отвечает только за жизненный цикл заказа: создание, изменение статуса, история.
- Сервис "Оплата" (Payment Service) отвечает только за обработку платежей и взаимодействие с платёжными шлюзами.
- Сервис "Доставка" (Shipping Service) отвечает только за логистику и отслеживание посылок.
Преимущества High Cohesion в микросервисах:
- Упрощение понимания и разработки: Разработчик работает в чётко очерченном контексте.
- Независимое развёртывание: Изменения в сервисе "Заказы" не требуют пересборки и перезапуска сервиса "Оплата".
- Гранулярное масштабирование: Можно масштабировать только тот сервис, который испытывает высокую нагрузку (например, "Оплата" в час пик).
- Повышение отказоустойчивости: Сбой в одном сервисе не обязательно приводит к падению всей системы.
Как достичь High Cohesion? Применяя Domain-Driven Design (DDD) для выявления bounded context и следуя Принципу единственной ответственности (SRP) на уровне сервиса. Сервис должен меняться только по одной причине — из-за изменений в его конкретном бизнес-домене.