【发布时间】:2012-11-15 11:51:53
【问题描述】:
我很想知道你们是如何将有关命令/事件消息的元数据整合到 cqrs 解决方案中的。例如,我想知道谁、何时、哪个主机等生成了命令。我不想将这些放入消息本身。
假设在一个网络应用程序中,用户创建了一个购物车CreateShoppingCart { CartID, UserID }。然后向其中添加项目,AddItem { CartID, ItemID, Amount, etc }。我想准确记录用户点击“添加到购物车”按钮的时间。
- 我可以将它添加到一些
Dictionary<string, object> Headers { get; set; }属性中。该属性可能位于 BaseMessage 类中。 - 我可以依赖消息传递框架(类似于 NServiceBus)并将这些数据添加到消息上下文中的消息头中。
- 为此信息发送单独的命令。像
LogCommandDetails { CommandID: 'id of AddItem command', DateTime, Some other meta data }这样的东西。处理此命令后,我可以更新 ItemAdded 事件的投影并将此数据添加到投影中。
你有什么想法?
谢谢
【问题讨论】: