我正在尝试用Event Sourcing实现自己的CQRS基础架构,以更好地学习.作为一个示例项目,我正在实施一个博客引擎,我知道这可能不是一个完美的合适,但我只是想做一些真正的事情.
我现在来的问题是验证.每个帖子都有一个shortUrl,而shortUrl应该是唯一的,但是我应该把这个验证放在域中呢?我知道,在我甚至发送命令之前,我将通过读取我的读取存储来检查它是否是有效的,当创建一个创建post命令或更新post命令时,我将有这个验证.
我可以想到两个“解决方案”.
拥有一个博客聚合,可以跟踪所有博客相关设置,并引用所有的帖子.但是我的眼中的问题是,我必须处理这种情况下的聚合之间的通信,以及每次需要验证一个shortUrl的唯一性时,我需要读取事件存储中的所有事件来创建所有的帖子这似乎很复杂.
>我的第二个替代方案是当事件被触发时,创建读取模型的事件处理程序会发出一个重复的短url事件,当它注意到它将有两个指向不同帖子的短网址.读取模型在检测到错误时触发事件是否有效?
还有更多的选择.请注意,我知道我的域可能不适合cqrs和DDD,但我正在这样做,以便在一个小域中学习.