免责声明:这是我关于 NServiceBus 的另一个问题的后续问题,该问题得到了非常彻底的回答。
我目前的问题是:如果一个网站被构建为像上面提到的文章那样“愚蠢”,那么下面的场景是如何工作的?
用户通过填写包含相关详细信息的表格在网站上注册。当用户单击表单上的“提交”按钮时,Web 应用程序获取表单数据并创建一条消息,它使用 NServiceBus 和 Bus.Send() 将其发送到应用程序层。应用层负责创建新用户并发布用户已创建的事件 (Bus.Publish()),以便其他进程可以做他们的事情(给新用户发送电子邮件,将用户添加到搜索索引等)。
现在,由于这个场景中的 Web 应用程序完全依赖于应用程序层来创建新的用户实例,它是如何知道用户的 id 的呢?如果在这种情况下我没有使用 NServiceBus,而是让网站发出对 DAL 的进程内调用,我将使用 NHibernate 的 GuidComb() 策略为新用户创建标识符,然后再将新行保留在数据库。如果接收到创建新用户的命令的消息处理程序应用程序(在当前场景中)使用相同的策略,那么 userId 是如何传回 Web 应用程序的?
在这种情况下,我是否必须应用不同的策略来管理标识符?