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

事件溯源基础结构实施

戴嘉珍
2023-03-14

我在我的应用程序中实现了事件源和CQRS模式。我从下载示例代码的CQRS旅程中获得灵感。在那里,我找到了事件源的整个基础设施(命令处理程序、事件处理程序、事件、信封…等等),但它是相当大的代码量,我无法想象我需要所有的代码来进行简单的事件源。

你知道一些常见的测试库/nuget包/项目包含所有的基础设施发送/注册命令,事件和我在事件源模式中需要的一切吗?还是要我自己去实现?

共有3个答案

戚奇略
2023-03-14

Greg young创建了一个非常简单的CQRS/ES项目,可以作为起点。基础设施比CQRS行程代码简单得多

https://github.com/gregoryyoung/m-r

江鹏飞
2023-03-14

一般建议不要编写自己的事件存储。当然,你可以写你自己的简历,但是仅仅是为了教育的目的。对于生产系统,我建议您使用现有的专家系统。起初,它可能看起来像许多不必要的基础设施代码,但是您很快就会注意到您确实需要它。最简单的情况下,ES并不难,但是一旦你开始处理并发性、性能等问题,它就会变得更加复杂。

NEventStore和EventStore是两个著名的事件存储。

根据我自己的经验,不要低估您需要在基础设施代码上投资的时间,即使您使用现有的ES。

常枫涟
2023-03-14

我可以介绍这个。NET Core 2. x基于事件源框架:https://github.com/jacqueskang/EventSourcing/

它为实现事件、事件源实体、实体存储库和几个简单的事件存储提供了基类,以将事件持久化到文本文件或数据库中(使用EF Core)。

它特别容易集成到ASP.NET核心网络应用程序中,我这里有一个非常简单的演示。

欢迎任何投稿或评论!

 类似资料:
  • Reducer 的基本结构 首先必须明确的是,整个应用只有一个单一的 reducer 函数:这个函数是传给 createStore 的第一个参数。一个单一的 reducer 最终需要做以下几件事: reducer 第一次被调用的时候,state 的值是 undefined。reducer 需要在 action 传入之前提供一个默认的 state 来处理这种情况。 reducer 需要先前的 sta

  • 什么是JSON JSON,说白了就是JavaScript用来处理数据的一种格式,这种格式非常简单易用。 JSON,大部分都是用来处理JavaScript和web服务器端之间的数据交换,把后台web服务器的数据传递到前台,然后使用JavaScript进行处理,例如ajax等。 JSON支持的语言非常多,包括JavaScript、C#、PHP、Java等等,这是由于JSON独立于语言的轻量级的数据交换

  • 在 C# 中,结构体是一种值数据类型。包含数据成员和方法成员。 struct 关键字是用于创建一个结构体。 结构体是用来代表一个记录。假设你想追踪一个图书馆的书。你可能想追踪每本书的属性如下: 标题 作者 类别 书号 定义一个结构体 定义一个结构体,你必须要声明这个结构体。结构体声明定义了一种新的数据类型,这个数据类型为你的程序包含了一个以上的成员变量。 例如,你可以声明一个书的结构如下: str

  • 在我们学习 C# 编程语言的基础构件块之前,让我们先看一下 C# 的最小的程序结构, 以便作为接下来章节的参考。 创建 Hello World 实例 一个 C# 程序主要包括以下部分: 命名空间声明 一个类 类方法 类属性 一个 Main 方法 语句和表达式 注释 让我们看一个可以打印出 “Hello World” 的简单的代码: using System; namespace HelloWorl

  • 主要内容:一、基础数据结构,二、数据结构的初步分析,三、数据结构的使用,四、总结一、基础数据结构 在整体上把握了Redis的架构流程后,先分析一下基础的数据结构。这样,一个是对以后各个模块分别分析时,不会因为对数据结构的陌生而增加源码分析的难度,又可以通过分析基础的数据结构来初步掌握redis的设计风格。在redis中,共有五种基础数据结构: string:字符串,在KV结构中,Key都是字符串类型。其它的数据结构可以说是从这个基础上衍生出来的。它可以存储字符,复杂的字符串(

  • 本文向大家介绍移动端基础事件总结与应用,包括了移动端基础事件总结与应用的使用技巧和注意事项,需要的朋友参考一下 1.触摸事件touch     touchstart      手指放在屏幕上触发     touchmove    手指在屏幕上移动,连续触发     touchend       手指离开屏幕触发     touchcancel   当系统停止跟踪时触发,该事件暂时用不到 注意: