Найти в Дзене
Удалёнка

Docker. Использование микрослужб с шаблонами DDD и CQRS для решения сложных бизнес-задач

Разработка модели предметной области для каждой микрослужбы или ограниченного контекста, который отражает понимание предметной области бизнеса.

Этот раздел посвящен более сложным микрослужбам, которые реализуются для комплексных подсистем, и микрослужбам, создаваемым на основе знаний экспертов в определенной области с учетом постоянно меняющихся бизнес-правил. Шаблоны архитектуры, используемые в этом разделе, основаны на принципах проблемно-ориентированного проектирования (DDD) и разделения команд и запросов (CQRS), как показано на рис.

-2

Внешняя архитектура: шаблоны микрослужб, шлюзы API, устойчивый обмен данными, публикации и подписки и т.д. Внутривенная архитектура: управление данными, CRUD, шаблоны DDD, внедрение зависимостей, несколько библиотек и т.д.

Рис. Архитектура внешних микрослужб и внутренние шаблоны архитектуры для каждой микрослужбы

Но большинство методов, применяемых для микрослужб на основе данных, таких как способы реализации службы веб-API ASP.NET Core или предоставления метаданных Swagger с помощью Swashbuckle или NSwag, также применимы и к более сложным микрослужбам, реализуемым с помощью внутренних шаблонов DDD. Этот раздел дополняет предыдущие, так как большинство описанных ранее методов применимы и в этом случае, а также к любой из микрослужб.

В этом разделе сначала приводятся сведения об упрощенных шаблонах CQRS, используемых в образце приложения eShopOnContainers. Далее вы получите представление о методах DDD, позволяющих найти общие шаблоны, которые можно повторно использовать в приложениях.

DDD — это обширная тема, по которой доступно множество учебных ресурсов. Вы можете начать знакомство с ней с книги Domain-Driven Design (Проблемно-ориентированное проектирование) Эрика Эванса (Eric Evans) и дополнительных материалов от Вона Вернона (Vaughn Vernon), Джимми Нилссона (Jimmy Nilsson), Грега Янга (Greg Young), Уди Дахана (Udi Dahan), Джимми Богарда (Jimmy Bogard) и многих других экспертов по DDD и CQRS. Но учиться применять приемы DDD следует в первую очередь в процессе общения, проведения телеконференций и сеансов моделирования предметных областей с экспертами.