Я пытаюсь реализовать свою собственную инфраструктуру CQRS с Event Sourcing, чтобы лучше изучить ее. В качестве образца проекта я реализую движок блога, я знаю, что он может не идеально подходить, но я просто хочу поработать над чем-то реальным.
Проблема, к которой я пришел, - это проверка. У каждого сообщения есть shortUrl
, а shortUrl
должен быть уникальным, но где мне разместить эту проверку в домене? Я знаю, что у меня будет эта проверка, прежде чем я даже отправлю команду, прочитав из моего хранилища чтения, чтобы проверить, действительна ли она при создании команды создания сообщения или команды обновления сообщения.
Я могу придумать два «решения».
Блог
, который отслеживает все настройки, связанные с блогами, а также ссылки на все сообщения. Но проблема с этим, на мой взгляд, заключается в том, что мне приходится обрабатывать связь между агрегатами в этом сценарии, а также каждый раз, когда мне нужно проверять уникальность shortUrl
, мне нужно читать все события из события store для создания всех сообщений, и это кажется сложным. Есть ли еще альтернативы. Обратите внимание: я знаю, что мой домен может не лучше всего подходить для cqrs и DDD, но я делаю это, чтобы учиться в небольшом домене.