2015-07-23 1 views
0

Как вы обрабатываете манипуляции данными в CQRS? Я думаю о команде, у которой есть байтовый массив (или входной поток). Затем в commandhandler я могу обработать файл (сохранить его в файловой системе) и отправить событие, где будет путь к сохраненному файлу. Подходит ли этот подход, или я должен использовать что-то другое?Загрузка/обработка данных CQRS

Благодаря

ответ

1

CQRS молчит на тему «манипулирования данными», за исключением сказать, что «сторона записи» приложения должны быть отделены от «читать» стороне. Не существует определенной практики, и она будет зависеть от вашего домена.

В вашем домене содержатся понятия «файлы» и «байтовые массивы»? Наверное, нет, поэтому звучит так, будто вы создаете слой антикоррупции, который проверяет и переводит внешний источник данных в команды, которые будут выдаваться против вашего домена.

+0

И хорошо ли положить логику на уровень антикоррупции? business logic = «Данные должны быть размещены где-то на основе чего-то». Я ожидаю, что уровень защиты от коррупции - это еще один «сервисный уровень», где я могу преобразовать «внешнее сообщение» в команду «внутреннее сообщение». – bilak

+0

@bilak Ну, это сложно сказать, не зная домена. Но ACL делают, как следует из их названия, - защищайте домен от команд, которые возникают вне контекста. Если ваша бизнес-логика является чем-то неявным внутри контекста, но должна быть явно указана вне контекста, тогда она должна жить в ACL. – Matt