Domain driven design С;使用DDD CQR时事件中数据的完整性

Domain driven design С;使用DDD CQR时事件中数据的完整性,domain-driven-design,cqrs,Domain Driven Design,Cqrs,事件中应包含哪些数据?仅限特定于此事件的数据或来自边界上下文的某些数据 比如说。我有账户,拥有域和名称属性 account(id, name, domain) 当我更改帐户名称名称更改(id,名称)事件被创建。但当此事件用于读取侧投影(cassandra db)时,我需要填充两个表(示例不使用物化视图): 第二个表无法通过名称同步,因为事件中没有域 问题:事件必须尽可能简单(并调用实体的状态以获取事件发生时可能不同的信息)或者它必须具有读取侧投影的完整信息,我们通常不限于孤立地处理事件-事件中

事件中应包含哪些数据?仅限特定于此事件的数据或来自边界上下文的某些数据

比如说。我有
账户
,拥有
名称
属性

account(id, name, domain)
当我更改帐户
名称
名称更改(id,名称)
事件被创建。但当此事件用于
读取侧投影(cassandra db)时,我需要填充两个表(示例不使用物化视图):

第二个表无法通过
名称
同步,因为事件中没有


问题:事件必须尽可能简单(并调用实体的状态以获取事件发生时可能不同的信息)或者它必须具有读取侧投影的完整信息,我们通常不限于孤立地处理事件-事件中的标识符允许我们查找所需的其他信息(例如,可以包含在同一流中的其他事件中)

回顾Greg Young关于的演讲可能有助于澄清这一观点

accounts(id, name, domain) (primary key only `id`)
accountsByDomain(domain, id, name) (primary key contains `domain` and `id`)