Ответ 1
Я обнаружил, что сначала ограниченные контексты и совокупные корни казались самой легкой концепцией в DDD. Это до тех пор, пока вы на самом деле не придете к внедрению DDD-приложения с проблемой реального мира. Здесь нет простого ответа. Это полностью зависит от ваших бизнес-требований (масштабируемость, доступность, латентность, согласованность и т.д.). "Правильное" решение - это то, которое уравновешивает эти проблемы, чтобы наилучшим образом удовлетворить ваши потребности.
В примере, который вы даете, есть несколько вариантов:
- Один большой ограниченный контекст
- Отдельные ограниченные контексты с дублированными данными (возможно, с использованием системы обмена сообщениями публикации/подписки)
- Вытяните пользователей и элементы CatalogItems в свой собственный ограниченный контекст и получите доступ к другим ограниченным контекстам через службу
Одна вещь, которую следует иметь в виду, состоит в том, что потребности в запросах часто очень различны для "письменных" потребностей. Он часто может упростить разработку вашего приложения, чтобы иметь отдельные ограниченные контексты исключительно для запросов. Если это звучит так, как можно было бы применить, загляните в CQRS.