首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Axon - Synchronous Saga /命令验证-唯一性

Axon - Synchronous Saga /命令验证-唯一性
EN

Stack Overflow用户
提问于 2020-04-12 08:41:22
回答 1查看 352关注 0票数 0

我想创建一个从REST控制器上的sendAndWait命令到@Endsaga的同步saga过程(包括中间步骤)。

@Endsaga仅在查询端(独立的项目)发送事件(来自读取存储查询端的成功或失败),通知Saga发生了什么之后才会到达。

这是使用以下链接中描述的saga模式向客户发送唯一性电子邮件的验证过程的一部分:

http://foreverframe.net/how-to-guarantee-username-uniqueness-with-cqrses/

我不确定如何在Axon中正确地进行此配置。

你能帮帮我吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-04-12 23:40:37

我个人的观点是,选项2(来自你提到的文章)是最实用的。我不同意在命令端提到的DB的cons

为了检查唯一性,我会使用一个小的命令端投影(在命令组件/包中)。在Axon中,这将是一个常规的事件处理程序,它将处理事件并以非规范化的方式填充一个小表,以便您能够在以后的命令处理程序中使用它进行唯一性检查。此事件处理程序/处理器的类型应为订阅(https://docs.axoniq.io/reference-guide/configuring-infrastructure-components/event-processing/event-processors#event-processors)

订阅事件处理器的

  1. 将使用相同的事务来存储事件和投影。这就是为什么在这里使用这种特定类型的事件处理器很重要。
  2. 不会在此存储库(投影)之上公开Axon查询API,只需将此存储库注入到您的聚合处理程序中以检查唯一性。这样,投影应用编程接口将仅供命令组件使用,而不会暴露给外部世界。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61165457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档