【发布时间】:2023-03-14 05:46:01
【问题描述】:
我有以下型号:
public class Team {
public Guid Id {get; set;}
public string Name {get; set;}
public string League {get; get;}
public int Rating {get; set;}
}
在系统中创建新团队后,我将事件:TeamCreated 发布到服务总线:
{
"MessageId": "33909eaf-56a1-4467-a01a-64b94f10490c"
"MessageType": "TeamCreated",
"CreationDate": "20-01-2016",
"Payload": {
"Id": "11111www-56a1-4467-a01a-64b94f000111",
"Name": "Toronto Maple Leafs",
"League": "NHL NorthEast",
"Rating": 100
}
}
下一步,因为此条目已修改为以下内容:
{
"MessageId": "33909eaf-56a1-4467-a01a-64b94f10490c"
"MessageType": "TeamUpdated",
"CreationDate": "20-01-2016",
"Payload": {
"Id": "11111www-56a1-4467-a01a-64b94f000111",
"Name": "Toronto Maple Leafs",
"League": "NHL NorthEast",
"Rating": 50
}
}
如您所见,他更新的消息仍然包含所有属性的值,而不仅仅是更改后的属性,即团队评级。
我的模型在实际系统中具有 50 多个属性,我不想在更新每个属性时为其创建单独的事件。特别是因为在一次更新中可能会更改多个属性。
在事件溯源架构中是否有针对此场景的定义模式?
【问题讨论】:
标签: domain-driven-design cqrs event-sourcing