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

如何开始在现有数据库上使用带有Axon框架的CQRS

柳高卓
2023-03-14

我们有一个使用图形数据库的现有webapplication,我们希望切换到一个使用Axon框架的cqrs的架构。

共有1个答案

景宏朗
2023-03-14

将应用程序迁移到CQRS并不是一件容易的事情,绝对不是一步就能完成的。但是,如果应用程序设置得当,则肯定有可能慢慢地转向(更多)CQRs。

由于您的挑战似乎是添加一个额外的视图模型(ElasticSearch模型),我的建议是从发布事件开始。在Axon框架中,这意味着定义一个事件总线并向其发布消息。

在“弹性方面”,定义许多事件处理程序,它们监听这些事件,并在那里对模型进行必要的更新。您可以选择将必要的数据放在事件中,或者简单地将事件用作“触发器”来查询应用程序的当前状态。

下一步可能是为前端(或集成)组件请求的更改使用命令处理程序、命令总线和命令消息。一旦有了这些组件,就可以开始考虑将这些命令处理程序组件取出到一个单独的组件中(使用事件更新分离后剩下的查询组件)。

在做每一步之前,考虑工作量和它们给你的实际优势。例如,它可能不值得去掉命令处理组件。从“整块”发送事件可能已经给了您足够的灵活性来围绕它构建单独的组件。

 类似资料:
  • 我们有一个现有的数据库在生产。我们已经决定使用liquibase进行所有进一步的更新,并创建任何新的数据库(如开发或集成)。 如果我们在生产上执行liquibase,它将尝试进行所有的完全更改,即使是那些已经存在的更改,这不会发生,因为除了两个新的更新之外,生产中已经有了所有的更改。现在我们想使用liquibase将这两个更改单独更新到产品中。 我们怎么能做到这一点?

  • 下面是logcat: 12-15 13:15:30.763 295 33-29533/com.example.hieul.hismartversearch e/androidruntime:致命异常:main process:com.example.hieul.hismartversearch,pid:29533 java.lang.nullpointerexception:试图在Android.

  • 我正在尝试设置一个PostgreSQL容器(https://hub.docker.com/_/Postgres/)。我有一些来自当前PostgreSQL实例的数据。我从中复制了它,并希望将它设置为PostgreSQL容器的卷。 但我得到了同样的错误,我做错了什么? 我使用pg_dumpall获得了SQL,并将其放入/docker-entrypoint-initdb.d中,但每次执行时都会执行该文件

  • 我必须将昨天添加的一位同事的迁移应用到我的本地数据库: 问题是我的表中已经有数据并且迁移失败: 有什么方法可以避免这种冲突,而不必清除< code>Document表中的所有数据?

  • 任何关于如何做到这一点的文件都将不胜感激。 提前谢了。