事件采购基础设施实施

时间:2015-07-17 11:55:23

标签: c# cqrs event-sourcing

我在我的应用程序中实现了Event Sourcing和CQRS模式。我的灵感来自CQRS journey我下载的示例代码。在那里,我找到了事件采购的整个基础设施(CommandHandlers,EventHandler,事件,信封......等),但代码量非常大,我无法想象我需要所有代码来完成简单的事件采购

您是否知道一些常见的测试库/ nuget包/项目,其中包含用于发送/注册命令,事件以及事件源模式中所需的所有基础结构?或者我应该自己实施?

5 个答案:

答案 0 :(得分:8)

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

NEventStoreEvent Store是两个众所周知的事件商店。

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

答案 1 :(得分:7)

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

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

要集成到ASP.NET Core Web应用程序中特别容易,我有一个非常简单的演示here

欢迎任何贡献或评论!

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

我根据CQRS之旅实施了my own event store - messaging solution。消息持久性位于SQL Server之上。有了它,你可以做更多: - 您可以随时订阅流。当您需要为读取端使用新的ViewModel时非常有用。这将使您在读取端具有高可用性。 - 您可以以微服务方式在多个节点中分发应用程序。 - 您可以查询您的活动商店,例如Greg Young的活动商店。 - 还有更多......

答案 4 :(得分:0)

我最近开源了一个事件源(数据库)框架Eventsourcing for Java的Java实现。但是,计划是在未来实施多种语言,包括.NET。这就是specify the fundamentals正在不断努力的原因。

我的实施更侧重于使用lazy "read side"而非主动应用每个事件的忠实命令/事件捕获。

相关问题