当前位置: 首页 > 知识库问答 >
问题:

使用Axon 4处理外部伙伴时设计命令和事件

魏煜祺
2023-03-14

实际付款将由外部合作伙伴完成。我想通过以下事件在我的系统中跟踪它:支付请求发出后,合作伙伴同意支付或拒绝支付。

命令发出的每个事件都应该登记在同一个数据库事务中。

给我在Axon 4的搭档打电话的最佳做法是什么?

    null

记住这句话,我就明白了我应该创建和事件一样多的命令?但在这种情况下,所有这些命令的意义是什么?我是不是应该得到这样的结果:

  • 我的命令RequestPaymentCommand将生成PaymentRequestWasSubsced事件。
  • 然后从某个地方打电话给我的合作伙伴,然后发送另一个命令(如何命名?)在给定合作伙伴的结果的情况下生成事件?

共有1个答案

羊舌兴文
2023-03-14

实际付款将由外部合作伙伴完成

这意味着您的应用程序不是真理的来源,它不应该试图表现得像真理一样。这意味着它应该只观察远程系统中正在发生的事情,并可能对远程事件做出反应。“观察”可能意味着仅仅出于缓存原因或显示原因,在本地数据库中复制/复制远程事件,而不进行修改。您的系统不应该对这些事件直接给出其他解释,而不是由它们的来源给出的解释。

在本地复制远程事件后,系统可以对其做出反应。这可能意味着Saga在收到合作伙伴同意付款后,向本地聚合发送unlockfeature命令(请参见DDD)。

 类似资料:
  • 我想从Python中为大约8000个文件启动一个外部命令。每个文件都独立于其他文件进行处理。唯一的限制是在处理完所有文件后继续执行。我有4个物理核,每个物理核有2个逻辑核(返回8)。我的想法是使用一个由四个并行独立进程组成的池,这些进程将在8个内核中的4个上运行。这样我的机器就可以同时使用了。 以下是我一直在做的事情: 连续处理一批100个文件需要120秒。上述多处理版本(函数)只需20秒即可完成

  • 京东金融 App介绍 [京东金融](jr.jd.com)京东金融是京东数字科技集团旗下专注于金融科技服务的重要业务板块。 京东金融始终基于强大的数字科技能力,致力于为让消费者享受专业、安全的数字金融服务,旗下包含个人和企业两大服务体系。 在个人金融领域,“京东金融App”作为载体,通过独有的大数据技术及人工智能风控能力,携手400多家银行、120余家保险公司、110余家基金公司,已为过亿的消费者精

  • 4.4.1.3 创建/使用伙伴服务 伙伴服务是只能由特定应用使用的服务。 系统由伙伴公司的应用和内部应用组成,用于保护在伙伴应用和内部应用之间处理的信息和功能。 以下是 AIDL 绑定类型服务的示例。 要点(创建服务): 不要定义意图过滤器,并将导出属性显式设置为true。 验证请求应用的证书是否已在自己的白名单中注册。 请勿(无法)通过onBind(onStartCommand, onHandl

  • 4.1.1.3 创建/使用伙伴活动 伙伴活动是只能由特定应用程序使用的活动。 它们在想要安全共享信息和功能的伙伴公司之间使用。 第三方应用程序可能会读取用于启动活动的意图。 因此,如果你将敏感信息放入用于启动活动的意图中,有必要采取对策来确保其无法被恶意第三方读取。 创建伙伴活动的示例代码如下所示。 要点(创建活动): 不要指定taskAffinity。 不要指定launchMode。 不要定义意

  • Vim遵循UNIX哲学"做一件事,做好它"。 与其试图集成你可能想要的功能到编辑器自身,更好的办法是在适当时使用Vim来调用外部命令。 让我们在插件中添加一些跟Potion编译器交互的命令,来浅尝在Vim里面调用外部命令的方法。 编译 首先我们将加入一个命令来编译和执行当前Potion文件。 有很多方法可以实现这一点,不过我们暂且用外部命令简单地实现。 在你的插件的repo中创建potion/ft

  • 问题内容: 任何人都可以用简单的命令模式示例来解释。我在互联网上指称,但我感到困惑。 问题答案: 在大多数情况下,命令是不可变的,并且包含封装了按需执行的单个动作的指令。您可能还具有一个RuntimeCommand,该RuntimeCommand在执行时接受指令,但是根据实现的不同,它会更深入地研究Strategy或Decorator模式。 我个人认为,注意命令的不变上下文非常重要,否则命令将成为