我正在开发一个批量管理大量文档生产的项目。 工作流程
我目前已经模拟了" Batch"它本身作为聚合根,但不要将生成的文档列表存储在"批处理"对象本身,而是使用一个持久存储在"批处理"中的集合ID从我的数据存储中检索这些文档。宾语。我选择这样做的唯一原因是因为我不想让我的聚合根包含一个大集合并变得臃肿,但这会妨碍开发业务逻辑,因为现在我必须处理"批次"。
中的文档之间的一致性问题我的问题是,在DDD / CQRS中,当使用文档数据库进行持久化和/或使用事件源时,如何处理包含大型集合的聚合?
我看过this post和this post,既没有解决我的问题,也没有使用nhibernate集合过滤器,对我来说既不是我的选择,也不认为是解决这个问题的正确方法它将存储逻辑泄漏到域模型中,另一个更多是关于访问嵌套聚合中的对象,而不是解决存储/检索问题。
仅供参考,使用.net,c#,服务总线,使用SQL支持的过度简化的通用存储库,计划在不久的将来切换到MongoDb。
答案 0 :(得分:1)
我害怕,我没有快速回答你的问题。我认为这取决于您的域的设计 - 特别是事务性和最终的一致性。很难摆脱以数据为导向的思维模式。 我发现Vaughn Vernon对原版的跟进书非常有用。他的书基于他在Effective Aggregate Design上的论文。我发现他们在这个领域非常有见地。