Какой лучший способ DDD сделать это? Логика проверки довольно сложна, и я не хотел бы дублировать проверку файла CSV в домене.
Чтобы выполнить что-то подобное, вы можете использовать Saga или Process Manager. Он сохранит вашу позицию в файле и выдаст команды вашим агрегатам для выполнения импорта файла. Если команды не выполняются или отклоняются, вы можете обновить соответствующие строки сообщениями об ошибках, которые выдает домен.
Кроме того, файловая структура является более плоской структурой, которая отличается от совокупности доменов. Так что даже если я проверю агрегат, информация о строке будет потеряна.
Вы можете сгруппировать записи в файле, если это необходимо, но сага должна вести запись номеров строк и соответствующих команд. Вы можете выбрать модель самого файла в качестве Агрегата, который также обеспечит преимущества. Исключение таких концепций предметной области, как это, усложнит ситуацию в будущем, но добавление их в дизайн будет стоить времени.
Я могу предоставить более подробную информацию, если вы сможете объяснить: используете ли вы DDD, CQRS, ES, очереди, асинхронность и т. Д.? Как объяснил @Dnomyar, вы также можете объяснить, где вы сталкиваетесь с реальными трудностями.