事件采购基础设施实施

Joz*_*sky 11 c# cqrs event-sourcing

我在我的应用程序中实现了Event Sourcing和CQRS模式.我启发了CQRS之旅,我下载了示例代码.在那里,我找到了事件采购的整个基础设施(CommandHandlers,EventHandlers,事件,信封......等),但它是相当多的代码,我无法想象我需要所有代码用于简单的事件采购.

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

小智 11

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

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

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

欢迎任何贡献或评论!

  • 嘿,雅克,我不确定为什么对您的回答没有任何反应,但是我看着您的代码,我真的很喜欢。我认为它很干净而且写得很好。做得好! (3认同)

use*_*727 8

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

NEventStoreEvent Store是两个众所周知的活动商店.

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

  • @y0io 您可以为此使用服务总线。其中有很多(NServiceBus、Mass Transit 等),我有自己的使用。 (2认同)
  • @y0io 您可以查看 NEventStore CommonDomain。这会给你一些帮助,但它不会帮助你处理消息传递基础设施。不过,您可能想自己编写这些东西,以便您可以控制它。对于预测,请查看 NEventStore 中的 PollingClient。 (2认同)