CQRS,事件采购和创建记录的ID

时间:2016-03-10 20:19:17

标签: cqrs event-sourcing

刚开始使用CQRS和事件采购。对于那些使用CQRS的人来说,这是一个普遍的新手问题。

说,我们有一个事件“userRegistration”,我们应该为这个创建的用户创建Id吗?我们应该将此Id写入事件数据吗?在对CQRS进行建模时通常如何进行?

1 个答案:

答案 0 :(得分:3)

是的,您通常希望在事件数据中包含id。侦听UserRegistered事件的处理程序可能需要知道您正在关注哪个用户。

任何足够独特的id生成方法都可以。但是你可以从id生成具有确定性的方法中获益匪浅;它为您的系统提供了另一种识别重复消息的方法

使用命名的UUID在这里是一个可能的答案,确定性,但具有足够小的碰撞频率,您不太可能遇到问题。

例如,如果RegisterUser命令具有唯一标识符(有用,因为它为您提供了另一种识别重复项的方法),那么您可以使用该标识符确定性地为用户生成新标识符。