event-sourcing相关内容

CQRS:存储事件并发布它们 - 我如何以安全的方式执行此操作?

正如我在 为什么是 CQRS 存储库发布事件,而不是事件存储? 发布事件是 CQRS 存储库的任务.到目前为止,一切都很好. 当然,存储和发布事件应该在一个事务中进行.从技术上讲,这意味着将一个(或多个)记录写入存储,并将一个(或多个)事件发布到消息总线.因此,一个简单的数据库事务是不够的,它应该是一个分布式的. 现在,不幸的是,许多 NoSQL 数据库(例如 MongoDB)不支持符 ..
发布时间:2022-01-06 20:32:48 其他开发

微服务创建实体实现

这是我在此处概述的问题的后续问题. 网关充当应用程序的入口点,客户端的每个请求都会发送到该入口点.然后网关将请求分配给负责的微服务并处理身份验证. 在这种情况下,网关侦听 HTTP POST/bok 并通知 微服务 A 创建一本书.因此,Microservice A 负责管理和存储有关图书实体的所有内容. 以下伪代码是该架构的简化实现: 队列通信 网关 router ..
发布时间:2021-11-17 02:49:29 其他开发

CQRS/事件溯源项目结构

我有我的第一个使用事件溯源的 CQRS 项目,我想知道与其他涉及多层的项目相比,这种类型的项目是否应该在 Visual Studio 中以不同的方式构建? 例如,在过去创建的项目中,有一些层,例如远程处理、应用服务、域等,很明显每个层/程序集都触及了它下面的层.这些程序集似乎做了很多事情,使用像 NDepend 这样的工具确实说明了项目的结构. 但是,对于 CQRS 项目,是否最好只拥 ..
发布时间:2021-11-17 02:40:58 其他开发

使用 Kafka 流进行事件溯源

我正在尝试基于 Kafka 流(如 https://www.confluent.io 中所述/blog/event-sourcing-using-apache-kafka/) 我有 4 个基本部分: commands 主题,它使用聚合 ID 作为按聚合顺序处理命令的键 events 主题,聚合状态的每个更改都会发布到该主题(同样,key 是聚合 ID).此主题的保留策略为“永不删除" ..
发布时间:2021-11-12 03:37:25 其他开发

使用 Kafka 作为 EventStore 时在 Flink 中恢复状态一致性

问题 我正在将微服务作为事件溯源聚合实现,而该聚合又作为 Flink FlatMapFunction 实现.在基本设置中,聚合从两个 kafka 主题中读取事件和命令.然后,它将新事件写入第一个主题,并在第三个主题中处理结果.因此,Kafka 充当事件存储.希望这张图有帮助: RPC 请求 RPC 结果||~~~~>命令-||--->结果~~~~~~||--> 聚合--|~>输入 evs ..

kafka 上的无限期日志保留

我正在使用 kafka 进行事件溯源.我意识到我们仍然需要配置日志保留时间,即log.retention.hours. 如果我想无限期地保留我的所有消息,最好使用什么值?log.retention.bytes 的示例配置设置为 -1,我可以在 log.retention.hours 中也使用 -1 吗? 解决方案 看下面的 Kafka JIRA 将于 0.9.0.0 发布.暂时按照建 ..
发布时间:2021-11-12 02:20:22 其他开发

使用 Kafka 流进行事件溯源

我正在尝试基于 Kafka 流(如 https://www.confluent.io 中所述/blog/event-sourcing-using-apache-kafka/) 我有 4 个基本部分: commands 主题,它使用聚合 ID 作为按聚合顺序处理命令的键 events 主题,聚合状态的每个更改都会发布到该主题(同样,key 是聚合 ID).此主题的保留策略为“永不删除" ..
发布时间:2021-11-12 02:15:05 其他开发

使用 Kafka 作为(CQRS)事件存储.好主意?

虽然我之前遇到过 Kafka,但我最近才意识到 Kafka 可能被用作(基于)CQRS、eventstore. Kafka 支持的要点之一: 事件捕获/存储,当然是所有 HA. 发布/订阅架构 能够重播事件日志,让新订阅者能够在事后注册系统. 诚然,我不是 100% 精通 CQRS/事件源,但这似乎非常接近事件存储应该是什么.有趣的是:我真的找不到太多关于 Kafka 被用作 ..
发布时间:2021-11-12 01:39:44 其他开发

使用 Kafka 作为 EventStore 时在 Flink 中恢复状态一致性

问题 我正在将微服务作为事件溯源聚合实现,而该聚合又作为 Flink FlatMapFunction 实现.在基本设置中,聚合从两个 kafka 主题中读取事件和命令.然后,它将新事件写入第一个主题,并在第三个主题中处理结果.因此,Kafka 充当事件存储.希望这张图有帮助: RPC 请求 RPC 结果||~~~~>命令-||--->结果~~~~~~||--> 聚合--|~>输入 evs ..

离线同步和事件来源

我们应用程序中基于CRUD的部分需要: 离线双向“双向"同步 能够修改数据直到准备就绪,然后再“发布". 审核日志 事件源(或“命令模式")是我要完成这些项目的目标.我对此感到很满意,可以解决2& 3,但不清楚第一项同步. 如果每个命令都使用了时间戳(如果需要),那么是否需要将脱机命令应用到主系统,就像它们是实时的(合并)一样?或者我可以认为它们只是在应用时发生了?任何命令的 ..

为什么整个系统事件源都采用反模式?

我目前正在设计一个新的企业系统.该系统的目的是跟踪,显示并通知员工客户与公司的互动(即事件).使用事件源模式来保持所有正在收集的客户交互/事件的分类账似乎非常合适,因为我们所有其他域对象都是从事件流中派生的.但是,我碰到一篇文章说,基于事件源的整个系统是一种反模式.为什么会这样? https://www.infoq.com/news/2016/04/event-sourcing-anti-p ..
发布时间:2021-05-05 18:30:21 其他开发

将旧版数据库迁移到CQR/事件源视图

我们有具有复杂业务逻辑的旧版旧版应用程序,需要对其进行重写.我们考虑使用cqrs和事件源.但是尚不清楚如何从旧数据库迁移数据.可能我们只需要将其迁移到读取数据库中,因为我们无法复制所有事件来填充事件存储.但是我们至少需要在事件存储中为每个聚合创建一些初始记录,例如 AggregateCreated 吗?还是我们需要编写脚本并使用所有命令一个接一个地使用所有命令来以通常与事件源相同的方式重新创建聚合 ..
发布时间:2021-04-24 21:12:36 其他开发

自动缩放Axon的跟踪事件处理器

我正在Axon Framework 4.0.3和Spring Boot中使用事件源,并具有一个跟踪处理器,该处理器配置为具有多个段/线程以同时处理事件: axon.eventhandling.processors [my_processor] .initial-segment-count = 6axon.eventhandling.processors [my_processor] .thre ..
发布时间:2021-04-24 21:12:32 其他开发

通过多个聚合从域事件重建查询

我正在使用DDD/CQRS/ES方法,并且对建模聚合和查询存在一些疑问.作为示例,请考虑以下情形: 用户可以创建工作项,更改其标题并将其他用户关联到该工作项.WorkItem具有参与者(关联的用户),并且参与者可以将操作添加到WorkItem.参与者可以执行动作. 让我们假设已经创建了Users,而我只需要userIds. 我有以下WorkItem命令: CreateWor ..
发布时间:2021-04-24 21:12:29 其他开发

与某些"aggregateIdentifier"有关的轴突重放TrackingEvent.使用Axon 4

我们正在使用CQRS,并使用Axon 4使用事件源. 我们有以下情况. 域书 操作-使用Axon CRQS和事件源流(命令-汇总-事件)将新的Book创建到数据库中 操作-使用Axon CRQS和事件源流(命令-汇总-事件)将已创建的Book更新到数据库中 在Axon事件存储中,上面说明的这两个命令(createCommand和updateCommand)具有相同的"aggr ..
发布时间:2021-04-24 21:12:26 Java开发

卡夫卡上的不确定日志保留

我正在使用kafka进行活动采购.我意识到我们仍然需要配置日志保留时间,即 log.retention.hours . 如果我想无限期地保存所有消息,那么使用的最佳值是什么? log.retention.bytes 的示例配置设置为-1,我是否还可以在 log.retention.hours 中使用-1? 解决方案 请参阅以下Kafka JIRA 将于0.9.0.0版本发布.根据建议 ..
发布时间:2021-04-08 18:50:32 其他开发

事件源:避免在重播事件时侦听项目重复的事件,并监听新传入的事件

在需要构建新视图的情况下,我们可以重播 EventStore 中的所有事件.结果,我们将投影新视图. 因此,我们的想法是部署一个新的投影,该投影可以投影所有旧事件(通过重播),还可以监听新传入的事件并对其进行投影. 我认为在阅读旧的事件并听新的传入事件时,可能会发生种族状况.结果,我们可以多次投影同一事件,然后破坏新视图. 那么,在重播事件和新传入事件之间划清界限的好方法是什么? ..
发布时间:2020-10-31 18:30:56 其他开发

事件源中的事务处理

我正在尽全力在事件源中进行交易. 我的事件存储区中有一个聚合(事务作用域). 一个命令被处理并产生10个事件.现在,可以将其作为1个事务处理还是10个事务处理?对于事务,我的意思是更改仅在整体上有效的状态.即使我希望将事件作为一个整体来处理,如果将它们分成许多这样的事件,我是否将事件设计为错误? 我倾向于认为,正是该命令定义了事务,意图,并且该命令产生的所有事件都应作为一个整体处 ..
发布时间:2020-10-31 18:30:52 其他开发

处理所有事件以汇总

请在下面查看我的第一个永久订阅: namespace PersistentSubscription { internal class Program { private static void Main() { var subscription = new Persist ..
发布时间:2020-10-31 18:30:47 C#/.NET

什么是集合函数?

我想在业余时间学习事件采购(使用Greg Youngs Event Store)。我已经设置了一个简单的流,可以对其进行读取和写入。 请参见以下链接: https://eventstore.org/docs/getting- starts /?tabs = tabid-1%2Ctabid-dotnet-client%2Ctabid-dotnet-client-connect%2Ctabid- ..
发布时间:2020-10-25 21:19:51 C#/.NET