Есть проект в котором пытаюсь внедрить подход CQRS(Command Query Responsibility Segregation) и есть в нем два модуля Order и Store. И например есть такой бизнес процесс как создание ордера. Что б его создать необходимо сперва у модуля Store проверить работает ли этот store, то есть проверить его рабочие часы и дневной лимит на продажу(модуль оперирует этими данными), если store работает мы создаем order. Я вижу тут два подхода к реализации:
- Реализовать это в application слое, например controller сначала делает запрос(query) в модуль Store на проверку работает ли этот store. Если успех то затем создаем соответствующую command из модуля Order и которая попадет в соответствующий handler который создаст order
- Реализовать все это в handlere который создает order. То есть с handlerа делается запрос в другой модуль, через api service, дальнейший алгоритм такой же как и в пункте выше. Просто принятие решения на создание и запрос в сторонний модуль переносится в handler который создает order.
Какой из способов предпочтительней и какой более правильный? Может есть другой способ?