问题标签 [axon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
390 浏览

nservicebus - CQRS 和 Race:如何处理比赛要求

虽然有文章说商业世界不会发生竞争条件,这是我们需要寻找的解决方案,但我不确定情况是否如此。

我需要容量并进行活动票务。当对事件的需求很高时,会在同一微秒内出现许多并发的预订命令。执行此操作的传统方法是使用锁定来防止出现 RACE 条件。否则,它最终会出售不可用座位的门票,这是严格的商业禁忌。

下表显示了同时发生的步骤顺序。

时间 | 总容量 | 消费 | 可用 | 客户1 | 客户2

0 投票
1 回答
555 浏览

nservicebus - CQRS:Apply() 与 eventBus.publish()

像 AXON 这样的 CQRS 模式在聚合中使用 apply 方法,最终将事件发布到事件总线,命令处理程序也可以访问事件总线以将 commandHandled 事件发布到事件总线。

有什么优点和缺点,什么时候使用什么?

0 投票
1 回答
2002 浏览

axon - Axonframework 不使用 jpa 插入事件数据

我运行了入门指南(http://www.axonframework.org/axon-2-quickstart-guide/),它运行良好。

我试图用 JpaEventStore 替换 FileSystemEventStore,但它不存储任何事件。

在此处输入图像描述

这是我的配置:

0 投票
0 回答
680 浏览

domain-driven-design - 在轴突中批量创建实体

免责声明:我对事件溯源、Axon 框架和 DDD 完全陌生,所以我做错了什么的可能性很大。

我正在做一个应用程序来管理事件 - 会议、研讨会等。

我有一个聚合根,即 EventProposal。应该有可能将 TodoList 分配给给定的 EventProposal。TodoList 是另一个聚合根,由 TodoItems - 实体组成。TodoItem 可以编辑,标记为完成等。

需要将 TodoItem 分配给 TodoList,我是这样实现的:

对应的成功路径命令和事件:

这可以通过 Axon 的 BDD 方式轻松测试。(GivenThenFixture)

但是现在 - 还有另一个要求:应该能够在现有的 TodoListTemplate 上创建 TodoList。模板只是包装了 TodoItemTemplates 集合的聚合。

我的实现问题出现了。我尝试了类似的东西(在 TodoList 类中):

同样,命令和事件:

问题:如您所见 -TodoItemFactory涉及类,生成唯一 ID:

这样它就不能用轴突测试——它给了我错误org.axonframework.test.AxonAssertionError: Illegal state change detected! 这很明显——工作聚合的 ID 与应用事件后构造的 ID 不同。

最后,我的问题来了:

我应该如何解决这个问题?

  • 在某处生成这些 ID 并将它们包含在输出的 TodoListFulfilledWithTemplateEvent 中?这导致在一个事件中有两个集合 - 一个用于 ID,一个用于项目内容/描述。
  • 假设我得到了之前生成的那些 ID,并且不仅将它们包含在输出事件中,而且还包含在传入命令中。这导致与以前相同的丑陋,但两次。
  • 以我多次调用“assingTodoItemToTodoList”方法的方式执行此操作,这将生成大量事件并可能产生重新排序,因为事件是异步的。

抱歉冗长,我试图尽可能具体。

0 投票
0 回答
635 浏览

aop - AOP 与 AXON 框架的集成

我正在使用 axonframework 2.3.1 ,对于应用程序的单元测试,有一个包含一些事件处理程序的Aggregate 类。现在我希望在调用 Aggregate 类中包含的命令处理程序方法之前,我想应用 aop 跟踪 @Before 和 @After 那些处理程序方法。
我正在使用 FixtureConfiguration 接口并将 newGivenWhenThenFixture 应用于聚合类,因为轴突配置类的布线是由轴突框架完成的。
我已经在另一个 xml 文件中配置了 aop 配置,并在运行测试用例之前加载了该 xml 文件。如何将 aop 跟踪与 axon 有线聚合类集成。
谢谢

我在http://www.axonframework.org/axon-2-quickstart-guide/#step1使用了这个例子,在这个例子中我希望我应该能够为 class ToDoEventHandler 每个调用的方法记录之前/之后的跟踪消息。

下面是类似的代码,我在其中编写了一些聚合和方面进行配置。我有一个聚合类

和一个 EventHandler 类

spring-axon的配置文件如下

现在我希望在 ToDoEventHandler 类之前/之后调用的每个方法我都应该能够在方面之前和之后记录,所以我创建了一个方面并对其进行了配置。

和方面

并且有一个主类

}

我希望在 ToDoEventHandler 类之前/之后调用我的每个方法都应该能够在方面之前和之后记录。

提前致谢。

0 投票
1 回答
3889 浏览

eventhandler - 另一个类中的轴突事件处理程序

我正在使用 axon 2.3.1 ,我有一个聚合类

现在我希望这些事件处理程序包含在其他一些类中,并在该事件被触发时被调用

我尝试将它们放在另一个类中,但没有触发这些事件。
知道如何在 AXON 中实现这一点。
谢谢,

0 投票
1 回答
277 浏览

android - Axon 框架:Android 支持?

我目前正在为我的下一个 Android 应用程序研究 CQRS 库,我想知道:Axon Framework 是否支持 Android?我从文档中知道它使用注释,我很好奇是否有人有将其集成到 Android 中的经验。

提前致谢!

亚伯

0 投票
1 回答
368 浏览

java - 如何在 Java 中使用 Axon 框架区分空响应和超时

我通过CommandGateway.sendAndWait(Object command, long timeout, TimeUnit unit)方法发送命令并期待结果:

上述调用有 3 种可能的结果:

1)返回一个非空对象。

2)返回一个空对象(通过我的@CommandHandler中的业务逻辑查询数据库但没有找到我要找的东西)

3)返回一个空对象(Axon框架在超时的情况下返回)

我需要实现一种方法来区分点 2) 和 3),以便我可以相应地返回 NOT_FOUND 或 REQUEST_TIMEOUT 状态。您对如何建模有什么建议吗?

我想到的一种方法是在 Greeting (我的模型对象)中添加一个状态字段,如果@CommandHandler没有从 DB 接收到任何内容,我将返回一个 status = -1 的虚拟 Greeting 对象(意思是 NOT_FOUND),但这个解决方案会意味着向模型对象添加标志只是为了区分框架流,我不认为这是推荐的。

0 投票
1 回答
497 浏览

java - Axon 框架 - 为每个聚合根使用单独的 Mongo 域事件集合

我们担心使用单个 Mongo 集合 (domainevents) 处理域事件的性能。

将 domainevents 集合拆分为每个聚合根的单独集合是个好主意吗?

我们有查询模型,它是基于来自多个聚合根的事件生成的。如果我们将域事件拆分为多个集合,Axon 是否仍会在聚合根中保留事件的顺序?

这样做通常是个好主意吗?

0 投票
1 回答
244 浏览

jakarta-ee - 带有 JTA 事务的 Axon ReplayingCluster

对于我的 Java EE (7) 项目,我想使用 Axon 框架。Axon 的参数之一ReplayingCluster是 a TransactionManager,但 Axon 只支持NoTransactionManagerSpringTransactionManager

但是,如果我没有弄错 JTA,事务已经由应用程序服务器管理EntityManager(我存储在 中JpaEventStore)。

我的问题:当我使用ReplayingClusterwith时NoTransactionManager,这是否意味着 JTA 仍将提供事务功能?